From d74b8bea0c46e25f732d27db8ec9ae205e604dfa Mon Sep 17 00:00:00 2001 From: Greg Smith Date: Tue, 4 Nov 2025 16:36:55 +1100 Subject: [PATCH 01/34] More work on GP5 support. - Split display into Valeton and Tonex modules. - Some breakthroughs in GP-5 comms protocol. - Expanded parameters to contain meta data --- source/main/CMakeLists.txt | 2 +- source/main/control.h | 3 + source/main/display.c | 2439 +--------------- source/main/display.h | 1 + source/main/display_tonex.c | 2548 +++++++++++++++++ source/main/display_tonex.h | 37 + source/main/display_valeton.c | 377 +++ source/main/display_valeton.h | 37 + source/main/tonex_params.c | 236 +- .../main/ui_generated_480x320land/screens.c | 2 +- .../main/ui_generated_800x480land/screens.c | 20 +- source/main/usb_valeton_gp5.c | 432 +-- source/main/valeton_params.c | 459 +-- source/main/valeton_params.h | 16 +- .../Tonex_Controller_480_320.eez-project | 8 +- ...ex_Controller_480_320.eez-project-ui-state | 13 +- .../Tonex_Controller_800_480land.eez-project | 42 +- ...ontroller_800_480land.eez-project-ui-state | 6 +- 18 files changed, 3716 insertions(+), 2962 deletions(-) create mode 100644 source/main/display_tonex.c create mode 100644 source/main/display_tonex.h create mode 100644 source/main/display_valeton.c create mode 100644 source/main/display_valeton.h diff --git a/source/main/CMakeLists.txt b/source/main/CMakeLists.txt index 704ce656..8ec86728 100644 --- a/source/main/CMakeLists.txt +++ b/source/main/CMakeLists.txt @@ -1,5 +1,5 @@ -idf_component_register(SRCS "valeton_params.c" "midi_control.c" "control.c" "footswitches.c" "CH422G.c" "display.c" "main.c" "tonex_params.c" "SX1509.c" +idf_component_register(SRCS "valeton_params.c" "midi_control.c" "control.c" "footswitches.c" "CH422G.c" "display.c" "main.c" "tonex_params.c" "SX1509.c" "display_tonex.c" "display_valeton.c" "usb_comms.c" "usb_tonex_one.c" "usb_tonex_common.c" "usb_tonex.c" "usb_valeton_gp5.c" "CH422G.c" "midi_serial.c" "wifi_config.c" "leds.c" "midi_helper.c" "LP5562.c" "platform_devkitc.c" "platform_lgtdisps3.c" "platform_m5atoms3r.c" "platform_ws19t.c" "platform_ws43.c" "platform_wszero.c" "platform_ws169.c" "platform_ws35b.c" "platform_jc3248w.c" diff --git a/source/main/control.h b/source/main/control.h index f9bfac7b..414f7f79 100644 --- a/source/main/control.h +++ b/source/main/control.h @@ -261,6 +261,9 @@ typedef struct float Max; char Name[MAX_PARAM_NAME]; uint8_t Type; + uint8_t Data1; // usage depends on connected modeller + uint8_t Data2; // usage depends on connected modeller + uint8_t Data3; // usage depends on connected modeller } tModellerParameter; typedef struct __attribute__ ((packed)) diff --git a/source/main/display.c b/source/main/display.c index de9e3b7c..b9594e91 100644 --- a/source/main/display.c +++ b/source/main/display.c @@ -69,6 +69,8 @@ limitations under the License. #include "usb_tonex_one.h" #include "usb_tonex.h" #include "display.h" +#include "display_tonex.h" +#include "display_valeton.h" #include "CH422G.h" #include "control.h" #include "task_priorities.h" @@ -404,42 +406,19 @@ bool display_on_vsync_event(esp_lcd_panel_handle_t panel, const esp_lcd_rgb_pane *****************************************************************************/ void ui_show_settings_tab(lv_event_t * e) { - lv_obj_t* target = lv_event_get_current_target(e); - - if (target == objects.ui_icon_eq) - { - // show EQ settings - lv_tabview_set_act(objects.ui_settings_tab_view, CONFIG_TAB_EQ, LV_ANIM_OFF); - } - else if (target == objects.ui_icon_gate) - { - // show gate settings - lv_tabview_set_act(objects.ui_settings_tab_view, CONFIG_TAB_GATE, LV_ANIM_OFF); - } - else if ((target == objects.ui_icon_amp) || (target == objects.ui_icon_cab)) - { - // show amp settings - lv_tabview_set_act(objects.ui_settings_tab_view, CONFIG_TAB_AMPLIFIER, LV_ANIM_OFF); - } - else if (target == objects.ui_icon_comp) - { - // show comnpressor settings - lv_tabview_set_act(objects.ui_settings_tab_view, CONFIG_TAB_COMPRESSOR, LV_ANIM_OFF); - } - else if (target == objects.ui_icon_mod) - { - // show modulation settings - lv_tabview_set_act(objects.ui_settings_tab_view, CONFIG_TAB_MODULATION, LV_ANIM_OFF); - } - else if (target == objects.ui_icon_delay) - { - // show delay settings - lv_tabview_set_act(objects.ui_settings_tab_view, CONFIG_TAB_DELAY, LV_ANIM_OFF); - } - else if (target == objects.ui_icon_reverb) + switch (usb_get_connected_modeller_type()) { - // show reverb settings - lv_tabview_set_act(objects.ui_settings_tab_view, CONFIG_TAB_REVERB, LV_ANIM_OFF); + case AMP_MODELLER_TONEX_ONE: // fallthrough + case AMP_MODELLER_TONEX: // fallthrough + default: + { + tonex_show_settings_tab(e); + } break; + + case AMP_MODELLER_VALETON_GP5: + { + valeton_show_settings_tab(e); + } break; } } @@ -452,146 +431,19 @@ void ui_show_settings_tab(lv_event_t * e) *****************************************************************************/ void action_effect_icon_clicked(lv_event_t * e) { - tModellerParameter* param_ptr; - float value; - lv_event_code_t event_code = lv_event_get_code(e); - lv_obj_t* event_object = lv_event_get_target(e); - - // called from LVGL - ESP_LOGI(TAG, "action_effect_icon_clicked"); - - if (event_code == LV_EVENT_SHORT_CLICKED) + switch (usb_get_connected_modeller_type()) { - if (event_object == objects.ui_icon_reverb) - { - ESP_LOGI(TAG, "UI Toggle reverb"); - - tonex_params_get_locked_access(¶m_ptr); - if (param_ptr[TONEX_PARAM_REVERB_ENABLE].Value == 0.0f) - { - value = 1.0f; - } - else - { - value = 0.0f; - } - tonex_params_release_locked_access(); - - usb_modify_parameter(TONEX_PARAM_REVERB_ENABLE, value); - } - else if (event_object == objects.ui_icon_delay) - { - ESP_LOGI(TAG, "UI Toggle delay"); - - tonex_params_get_locked_access(¶m_ptr); - if (param_ptr[TONEX_PARAM_DELAY_ENABLE].Value == 0.0f) - { - value = 1.0f; - } - else - { - value = 0.0f; - } - tonex_params_release_locked_access(); - - usb_modify_parameter(TONEX_PARAM_DELAY_ENABLE, value); - } - else if (event_object == objects.ui_icon_mod) - { - ESP_LOGI(TAG, "UI Toggle mod"); - - tonex_params_get_locked_access(¶m_ptr); - if (param_ptr[TONEX_PARAM_MODULATION_ENABLE].Value == 0.0f) - { - value = 1.0f; - } - else - { - value = 0.0f; - } - tonex_params_release_locked_access(); - - usb_modify_parameter(TONEX_PARAM_MODULATION_ENABLE, value); - } - else if (event_object == objects.ui_icon_comp) - { - ESP_LOGI(TAG, "UI Toggle comp"); - - tonex_params_get_locked_access(¶m_ptr); - if (param_ptr[TONEX_PARAM_COMP_ENABLE].Value == 0.0f) - { - value = 1.0f; - } - else - { - value = 0.0f; - } - tonex_params_release_locked_access(); - - usb_modify_parameter(TONEX_PARAM_COMP_ENABLE, value); - } - else if (event_object == objects.ui_icon_cab) - { - ESP_LOGI(TAG, "UI Toggle cab"); - - tonex_params_get_locked_access(¶m_ptr); - if (param_ptr[TONEX_PARAM_CABINET_TYPE].Value == TONEX_CABINET_DISABLED) - { - //todo here: this could have been a VIR cabinet - value = TONEX_CABINET_TONE_MODEL; - } - else - { - value = TONEX_CABINET_DISABLED; - } - tonex_params_release_locked_access(); - - usb_modify_parameter(TONEX_PARAM_CABINET_TYPE, value); - } - else if (event_object == objects.ui_icon_amp) + case AMP_MODELLER_TONEX_ONE: // fallthrough + case AMP_MODELLER_TONEX: // fallthrough + default: { - ESP_LOGI(TAG, "UI Toggle amp"); - - tonex_params_get_locked_access(¶m_ptr); - if (param_ptr[TONEX_PARAM_MODEL_AMP_ENABLE].Value == 0.0f) - { - value = 1.0f; - } - else - { - value = 0.0f; - } - tonex_params_release_locked_access(); + tonex_action_effect_icon_clicked(e); + } break; - usb_modify_parameter(TONEX_PARAM_MODEL_AMP_ENABLE, value); - } - else if (event_object == objects.ui_icon_gate) + case AMP_MODELLER_VALETON_GP5: { - ESP_LOGI(TAG, "UI Toggle gate"); - - tonex_params_get_locked_access(¶m_ptr); - if (param_ptr[TONEX_PARAM_NOISE_GATE_ENABLE].Value == 0.0f) - { - value = 1.0f; - } - else - { - value = 0.0f; - } - tonex_params_release_locked_access(); - - usb_modify_parameter(TONEX_PARAM_NOISE_GATE_ENABLE, value); - } - else if (event_object == objects.ui_icon_eq) - { - // no short press action - } - } - else if (event_code == LV_EVENT_LONG_PRESSED) - { - // change to settings page and jump to relevant tab - action_show_settings_page(e); - ui_show_settings_tab(e); + valeton_action_effect_icon_clicked(e); + } break; } } @@ -758,584 +610,19 @@ void action_keyboard_ok(lv_event_t * e) *****************************************************************************/ void action_parameter_changed(lv_event_t * e) { - // get the object that was changed - lv_obj_t* obj = lv_event_get_current_target(e); - - ESP_LOGI(TAG, "Parameter changed"); - - // see what it was, and update the pedal - if (obj == objects.ui_noise_gate_switch) - { - usb_modify_parameter(TONEX_PARAM_NOISE_GATE_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } - else if (obj == objects.ui_noise_gate_post_switch) - { - usb_modify_parameter(TONEX_PARAM_NOISE_GATE_POST, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } - else if (obj == objects.ui_noise_gate_threshold_slider) - { - usb_modify_parameter(TONEX_PARAM_NOISE_GATE_THRESHOLD, lv_slider_get_value(obj)); - } - else if (obj == objects.ui_noise_gate_release_slider) - { - usb_modify_parameter(TONEX_PARAM_NOISE_GATE_RELEASE, lv_slider_get_value(obj)); - } - else if (obj == objects.ui_noise_gate_depth_slider) - { - usb_modify_parameter(TONEX_PARAM_NOISE_GATE_DEPTH, lv_slider_get_value(obj)); - } - else if (obj == objects.ui_compressor_enable_switch) - { - usb_modify_parameter(TONEX_PARAM_COMP_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } - else if (obj == objects.ui_compressor_post_switch) - { - usb_modify_parameter(TONEX_PARAM_COMP_POST, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } - else if (obj == objects.ui_compressor_threshold_slider) - { - usb_modify_parameter(TONEX_PARAM_COMP_THRESHOLD, lv_slider_get_value(obj)); - } - else if (obj == objects.ui_compressor_attack_slider) - { - usb_modify_parameter(TONEX_PARAM_COMP_ATTACK, lv_slider_get_value(obj)); - } - else if (obj == objects.ui_compressor_gain_slider) - { - usb_modify_parameter(TONEX_PARAM_COMP_MAKE_UP, lv_slider_get_value(obj)); - } - else if (obj == objects.ui_eq_post_switch) - { - usb_modify_parameter(TONEX_PARAM_EQ_POST, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } - else if (obj == objects.ui_eq_bass_slider) - { - usb_modify_parameter(TONEX_PARAM_EQ_BASS, ((float)lv_slider_get_value(obj))/10.0f); - } - else if (obj == objects.ui_eq_mid_slider) - { - usb_modify_parameter(TONEX_PARAM_EQ_MID, ((float)lv_slider_get_value(obj))/10.0f); - } - else if (obj == objects.ui_eq_mid_qslider) - { - usb_modify_parameter(TONEX_PARAM_EQ_MIDQ, ((float)lv_slider_get_value(obj))/10.0f); - } - else if (obj == objects.ui_eq_treble_slider) - { - usb_modify_parameter(TONEX_PARAM_EQ_TREBLE, ((float)lv_slider_get_value(obj))/10.0f); - } - else if (obj == objects.ui_reverb_enable_switch) - { - usb_modify_parameter(TONEX_PARAM_REVERB_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } - else if (obj == objects.ui_reverb_post_switch) - { - usb_modify_parameter(TONEX_PARAM_REVERB_POSITION, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } - else if (obj == objects.ui_reverb_model_dropdown) - { - usb_modify_parameter(TONEX_PARAM_REVERB_MODEL, lv_dropdown_get_selected(obj)); - } - else if (obj == objects.ui_reverb_mix_slider) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_reverb_model_dropdown)) - { - case TONEX_REVERB_SPRING_1: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING1_MIX, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_SPRING_2: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING2_MIX, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_SPRING_3: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING3_MIX, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_SPRING_4: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING4_MIX, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_ROOM: - { - usb_modify_parameter(TONEX_PARAM_REVERB_ROOM_MIX, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_PLATE: - { - usb_modify_parameter(TONEX_PARAM_REVERB_PLATE_MIX, lv_slider_get_value(obj)); - } break; - } - } - else if (obj == objects.ui_reverb_time_slider) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_reverb_model_dropdown)) - { - case TONEX_REVERB_SPRING_1: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING1_TIME, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_SPRING_2: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING2_TIME, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_SPRING_3: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING3_TIME, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_SPRING_4: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING4_TIME, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_ROOM: - { - usb_modify_parameter(TONEX_PARAM_REVERB_ROOM_TIME, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_PLATE: - { - usb_modify_parameter(TONEX_PARAM_REVERB_PLATE_TIME, lv_slider_get_value(obj)); - } break; - } - } - else if (obj == objects.ui_reverb_predelay_slider) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_reverb_model_dropdown)) - { - case TONEX_REVERB_SPRING_1: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING1_PREDELAY, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_SPRING_2: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING2_PREDELAY, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_SPRING_3: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING3_PREDELAY, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_SPRING_4: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING4_PREDELAY, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_ROOM: - { - usb_modify_parameter(TONEX_PARAM_REVERB_ROOM_PREDELAY, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_PLATE: - { - usb_modify_parameter(TONEX_PARAM_REVERB_PLATE_PREDELAY, lv_slider_get_value(obj)); - } break; - } - } - else if (obj == objects.ui_reverb_color_slider) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_reverb_model_dropdown)) - { - case TONEX_REVERB_SPRING_1: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING1_COLOR, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_SPRING_2: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING2_COLOR, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_SPRING_3: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING3_COLOR, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_SPRING_4: - { - usb_modify_parameter(TONEX_PARAM_REVERB_SPRING4_COLOR, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_ROOM: - { - usb_modify_parameter(TONEX_PARAM_REVERB_ROOM_COLOR, lv_slider_get_value(obj)); - } break; - - case TONEX_REVERB_PLATE: - { - usb_modify_parameter(TONEX_PARAM_REVERB_PLATE_COLOR, lv_slider_get_value(obj)); - } break; - } - } - else if (obj == objects.ui_modulation_enable_switch) - { - usb_modify_parameter(TONEX_PARAM_MODULATION_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } - else if (obj == objects.ui_modulation_post_switch) - { - usb_modify_parameter(TONEX_PARAM_MODULATION_POST, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } - else if (obj == objects.ui_modulation_model_dropdown) - { - usb_modify_parameter(TONEX_PARAM_MODULATION_MODEL, lv_dropdown_get_selected(obj)); - } - else if (obj == objects.ui_modulation_sync_switch) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_modulation_model_dropdown)) - { - case TONEX_MODULATION_CHORUS: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_CHORUS_SYNC, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } break; - - case TONEX_MODULATION_TREMOLO: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_TREMOLO_SYNC, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } break; - - case TONEX_MODULATION_PHASER: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_PHASER_SYNC, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } break; - - case TONEX_MODULATION_FLANGER: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_FLANGER_SYNC, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } break; - - case TONEX_MODULATION_ROTARY: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_ROTARY_SYNC, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } break; - } - } - else if (obj == objects.ui_modulation_ts_dropdown) + switch (usb_get_connected_modeller_type()) { - switch (lv_dropdown_get_selected(objects.ui_modulation_model_dropdown)) - { - case TONEX_MODULATION_CHORUS: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_CHORUS_TS, lv_dropdown_get_selected(obj)); - } break; - - case TONEX_MODULATION_TREMOLO: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_TREMOLO_TS, lv_dropdown_get_selected(obj)); - } break; - - case TONEX_MODULATION_PHASER: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_PHASER_TS, lv_dropdown_get_selected(obj)); - } break; - - case TONEX_MODULATION_FLANGER: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_FLANGER_TS, lv_dropdown_get_selected(obj)); - } break; - - case TONEX_MODULATION_ROTARY: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_ROTARY_TS, lv_dropdown_get_selected(obj)); - } break; - } - } - else if (obj == objects.ui_modulation_param1_slider) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_modulation_model_dropdown)) - { - case TONEX_MODULATION_CHORUS: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_CHORUS_RATE, lv_slider_get_value(obj)); - } break; - - case TONEX_MODULATION_TREMOLO: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_TREMOLO_RATE, lv_slider_get_value(obj)); - } break; - - case TONEX_MODULATION_PHASER: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_PHASER_RATE, lv_slider_get_value(obj)); - } break; - - case TONEX_MODULATION_FLANGER: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_FLANGER_RATE, lv_slider_get_value(obj)); - } break; - - case TONEX_MODULATION_ROTARY: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_ROTARY_SPEED, lv_slider_get_value(obj)); - } break; - } - } - else if (obj == objects.ui_modulation_param2_slider) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_modulation_model_dropdown)) - { - case TONEX_MODULATION_CHORUS: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_CHORUS_DEPTH, lv_slider_get_value(obj)); - } break; - - case TONEX_MODULATION_TREMOLO: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_TREMOLO_SHAPE, lv_slider_get_value(obj)); - } break; - - case TONEX_MODULATION_PHASER: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_PHASER_DEPTH, lv_slider_get_value(obj)); - } break; - - case TONEX_MODULATION_FLANGER: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_FLANGER_DEPTH, lv_slider_get_value(obj)); - } break; - - case TONEX_MODULATION_ROTARY: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_ROTARY_RADIUS, lv_slider_get_value(obj)); - } break; - } - } - else if (obj == objects.ui_modulation_param3_slider) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_modulation_model_dropdown)) - { - case TONEX_MODULATION_CHORUS: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_CHORUS_LEVEL, lv_slider_get_value(obj)); - } break; - - case TONEX_MODULATION_TREMOLO: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_TREMOLO_SPREAD, lv_slider_get_value(obj)); - } break; - - case TONEX_MODULATION_PHASER: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_PHASER_LEVEL, lv_slider_get_value(obj)); - } break; - - case TONEX_MODULATION_FLANGER: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_FLANGER_FEEDBACK, lv_slider_get_value(obj)); - } break; - - case TONEX_MODULATION_ROTARY: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_ROTARY_SPREAD, lv_slider_get_value(obj)); - } break; - } - } - else if (obj == objects.ui_modulation_param4_slider) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_modulation_model_dropdown)) - { - case TONEX_MODULATION_CHORUS: - { - // not used - } break; - - case TONEX_MODULATION_TREMOLO: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_TREMOLO_LEVEL, lv_slider_get_value(obj)); - } break; - - case TONEX_MODULATION_PHASER: - { - // not used - } break; - - case TONEX_MODULATION_FLANGER: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_FLANGER_LEVEL, lv_slider_get_value(obj)); - } break; - - case TONEX_MODULATION_ROTARY: - { - usb_modify_parameter(TONEX_PARAM_MODULATION_ROTARY_LEVEL, lv_slider_get_value(obj)); - } break; - } - } - else if (obj == objects.ui_delay_enable_switch) - { - usb_modify_parameter(TONEX_PARAM_DELAY_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } - else if (obj == objects.ui_delay_post_switch) - { - usb_modify_parameter(TONEX_PARAM_DELAY_POST, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } - else if (obj == objects.ui_delay_model_dropdown) - { - usb_modify_parameter(TONEX_PARAM_DELAY_MODEL, lv_dropdown_get_selected(obj)); - } - else if (obj == objects.ui_delay_sync_switch) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_delay_model_dropdown)) - { - case TONEX_DELAY_DIGITAL: - { - usb_modify_parameter(TONEX_PARAM_DELAY_DIGITAL_SYNC, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } break; - - case TONEX_DELAY_TAPE: - { - usb_modify_parameter(TONEX_PARAM_DELAY_TAPE_SYNC, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } break; - } - } - else if (obj == objects.ui_delay_ping_pong_switch) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_delay_model_dropdown)) - { - case TONEX_DELAY_DIGITAL: - { - usb_modify_parameter(TONEX_PARAM_DELAY_DIGITAL_MODE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } break; - - case TONEX_DELAY_TAPE: - { - usb_modify_parameter(TONEX_PARAM_DELAY_TAPE_MODE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } break; - } - } - else if (obj == objects.ui_delay_ts_slider) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_delay_model_dropdown)) - { - case TONEX_DELAY_DIGITAL: - { - usb_modify_parameter(TONEX_PARAM_DELAY_DIGITAL_TIME, lv_slider_get_value(obj)); - } break; - - case TONEX_DELAY_TAPE: - { - usb_modify_parameter(TONEX_PARAM_DELAY_TAPE_TIME, lv_slider_get_value(obj)); - } break; - } - } - else if (obj == objects.ui_delay_ts_dropdown) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_delay_model_dropdown)) - { - case TONEX_DELAY_DIGITAL: - { - usb_modify_parameter(TONEX_PARAM_DELAY_DIGITAL_TS, lv_dropdown_get_selected(obj)); - } break; - - case TONEX_DELAY_TAPE: - { - usb_modify_parameter(TONEX_PARAM_DELAY_TAPE_TS, lv_dropdown_get_selected(obj)); - } break; - } - } - else if (obj == objects.ui_delay_feedback_slider) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_delay_model_dropdown)) + case AMP_MODELLER_TONEX_ONE: // fallthrough + case AMP_MODELLER_TONEX: // fallthrough + default: { - case TONEX_DELAY_DIGITAL: - { - usb_modify_parameter(TONEX_PARAM_DELAY_DIGITAL_FEEDBACK, lv_slider_get_value(obj)); - } break; + tonex_action_parameter_changed(e); + } break; - case TONEX_DELAY_TAPE: - { - usb_modify_parameter(TONEX_PARAM_DELAY_TAPE_FEEDBACK, lv_slider_get_value(obj)); - } break; - } - } - else if (obj == objects.ui_delay_mix_slider) - { - // check which model is set - switch (lv_dropdown_get_selected(objects.ui_delay_model_dropdown)) + case AMP_MODELLER_VALETON_GP5: { - case TONEX_DELAY_DIGITAL: - { - usb_modify_parameter(TONEX_PARAM_DELAY_DIGITAL_MIX, lv_slider_get_value(obj)); - } break; - - case TONEX_DELAY_TAPE: - { - usb_modify_parameter(TONEX_PARAM_DELAY_TAPE_MIX, lv_slider_get_value(obj)); - } break; - } - } - else if (obj == objects.ui_amp_enable_switch) - { - usb_modify_parameter(TONEX_PARAM_MODEL_AMP_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } - else if (obj == objects.ui_cabinet_model_dropdown) - { - usb_modify_parameter(TONEX_PARAM_CABINET_TYPE, lv_dropdown_get_selected(obj)); - } - else if (obj == objects.ui_amplifier_gain_slider) - { - usb_modify_parameter(TONEX_PARAM_MODEL_GAIN, ((float)lv_slider_get_value(obj))/10.0f); - } - else if (obj == objects.ui_amplifier_volume_slider) - { - usb_modify_parameter(TONEX_PARAM_MODEL_VOLUME, ((float)lv_slider_get_value(obj))/10.0f); - } - else if (obj == objects.ui_amplifier_presense_slider) - { - usb_modify_parameter(TONEX_PARAM_MODEL_PRESENCE, ((float)lv_slider_get_value(obj))/10.0f); - } - else if (obj == objects.ui_amplifier_depth_slider) - { - usb_modify_parameter(TONEX_PARAM_MODEL_DEPTH, ((float)lv_slider_get_value(obj))/10.0f); - } - else if (obj == objects.ui_bpm_slider) - { - usb_modify_parameter(TONEX_GLOBAL_BPM, lv_slider_get_value(obj)); - } - else if (obj == objects.ui_input_trim_slider) - { - usb_modify_parameter(TONEX_GLOBAL_INPUT_TRIM, lv_slider_get_value(obj)); - } - else if (obj == objects.ui_cab_bypass_switch) - { - usb_modify_parameter(TONEX_GLOBAL_CABSIM_BYPASS, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } - else if (obj == objects.ui_tempo_source_switch) - { - usb_modify_parameter(TONEX_GLOBAL_TEMPO_SOURCE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); - } - else if (obj == objects.ui_tuning_reference_slider) - { - usb_modify_parameter(TONEX_GLOBAL_TUNING_REFERENCE, lv_slider_get_value(obj)); - } - else if (obj == objects.ui_volume_slider) - { - usb_modify_parameter(TONEX_GLOBAL_MASTER_VOLUME, lv_slider_get_value(obj)); - } - else - { - ESP_LOGW(TAG, "Unknown Parameter changed"); + valeton_action_parameter_changed(e); + } break; } } #endif //CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI @@ -1693,78 +980,21 @@ static uint32_t ui_get_skin_image(uint16_t index) * RETURN: * NOTES: *****************************************************************************/ -void updateIconOrder() +void updateIconOrder(void) { - bool gatePost = lv_obj_has_state(objects.ui_noise_gate_post_switch, LV_STATE_CHECKED); - bool compPost = lv_obj_has_state(objects.ui_compressor_post_switch, LV_STATE_CHECKED); - bool eqPost = lv_obj_has_state(objects.ui_eq_post_switch, LV_STATE_CHECKED); - bool modPost = lv_obj_has_state(objects.ui_modulation_post_switch, LV_STATE_CHECKED); - bool delayPost = lv_obj_has_state(objects.ui_delay_post_switch, LV_STATE_CHECKED); - bool revPost = lv_obj_has_state(objects.ui_reverb_post_switch, LV_STATE_CHECKED); - - lv_obj_t *icons[8]; - uint8_t index = 0; - - if (!gatePost) - { - icons[index++] = objects.ui_icon_gate; - } - if (!compPost) - { - icons[index++] = objects.ui_icon_comp; - } - if (!modPost) - { - icons[index++] = objects.ui_icon_mod; - } - if (!delayPost) + switch (usb_get_connected_modeller_type()) { - icons[index++] = objects.ui_icon_delay; - } - if (!eqPost) - { - icons[index++] = objects.ui_icon_eq; - } - icons[index++] = objects.ui_icon_amp; - icons[index++] = objects.ui_icon_cab; - if (eqPost) - { - icons[index++] = objects.ui_icon_eq; - } - if (gatePost) - { - icons[index++] = objects.ui_icon_gate; - } - if (compPost) - { - icons[index++] = objects.ui_icon_comp; - } - if (!revPost) - { - icons[index++] = objects.ui_icon_reverb; - } - if (modPost) - { - icons[index++] = objects.ui_icon_mod; - } - if (delayPost) - { - icons[index++] = objects.ui_icon_delay; - } - if (revPost) - { - icons[index] = objects.ui_icon_reverb; - } - - // get the icon coords for this platform - int16_t offsets[8]; - platform_get_icon_coords(offsets, sizeof(offsets) / sizeof(int16_t)); + case AMP_MODELLER_TONEX_ONE: // fallthrough + case AMP_MODELLER_TONEX: // fallthrough + default: + { + tonex_update_icon_order(); + } break; - for (uint8_t i = 0; i<8; i++) - { - lv_obj_t *icon = icons[i]; - int16_t offset = offsets[i]; - lv_obj_set_x(icon, offset); + case AMP_MODELLER_VALETON_GP5: + { + valeton_update_icon_order(); + } break; } } #endif @@ -1854,1583 +1084,22 @@ static uint8_t update_ui_element(tUIUpdate* update) case UI_ELEMENT_PARAMETERS: { -#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI ESP_LOGI(TAG, "Syncing params to UI"); - tModellerParameter* param_ptr; - - for (uint16_t param = 0; param < TONEX_GLOBAL_LAST; param++) - { - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + switch (usb_get_connected_modeller_type()) + { + case AMP_MODELLER_TONEX_ONE: // fallthrough + case AMP_MODELLER_TONEX: // fallthrough + default: { - tModellerParameter* param_entry = ¶m_ptr[param]; - - // debug - //ESP_LOGI(TAG, "Param %d: val: %02f, min: %02f, max: %02f", param, param_entry->Value, param_entry->Min, param_entry->Max); - - switch (param) - { - case TONEX_PARAM_NOISE_GATE_POST: - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_noise_gate_post_switch, LV_STATE_CHECKED); - } - else - { - lv_obj_clear_state(objects.ui_noise_gate_post_switch, LV_STATE_CHECKED); - } - updateIconOrder(); - } break; - - case TONEX_PARAM_NOISE_GATE_ENABLE: - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_noise_gate_switch, LV_STATE_CHECKED); - lv_img_set_src(objects.ui_icon_gate, (lv_obj_t*)&img_effect_icon_gate_on); - } - else - { - lv_obj_clear_state(objects.ui_noise_gate_switch, LV_STATE_CHECKED); - lv_img_set_src(objects.ui_icon_gate, (lv_obj_t*)&img_effect_icon_gate_off); - } - } break; - - case TONEX_PARAM_NOISE_GATE_THRESHOLD: - { - lv_slider_set_range(objects.ui_noise_gate_threshold_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_noise_gate_threshold_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d db", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_noise_gate_threshold_value, value_string); - } break; - - case TONEX_PARAM_NOISE_GATE_RELEASE: - { - lv_slider_set_range(objects.ui_noise_gate_release_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_noise_gate_release_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d ms", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_noise_gate_release_value, value_string); - } break; - - case TONEX_PARAM_NOISE_GATE_DEPTH: - { - lv_slider_set_range(objects.ui_noise_gate_depth_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_noise_gate_depth_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d db", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_noise_gate_depth_value, value_string); - } break; - - case TONEX_PARAM_COMP_POST: - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_compressor_post_switch, LV_STATE_CHECKED); - } - else - { - lv_obj_clear_state(objects.ui_compressor_post_switch, LV_STATE_CHECKED); - } - updateIconOrder(); - } break; - - case TONEX_PARAM_COMP_ENABLE: - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_compressor_enable_switch, LV_STATE_CHECKED); - lv_img_set_src(objects.ui_icon_comp, (lv_obj_t*)&img_effect_icon_comp_on); - } - else - { - lv_obj_clear_state(objects.ui_compressor_enable_switch, LV_STATE_CHECKED); - lv_img_set_src(objects.ui_icon_comp, (lv_obj_t*)&img_effect_icon_comp_off); - } - } break; - - case TONEX_PARAM_COMP_THRESHOLD: - { - lv_slider_set_range(objects.ui_compressor_threshold_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_compressor_threshold_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f db", param_entry->Value); - lv_label_set_text(objects.ui_compressor_threshold_value, value_string); - } break; - - case TONEX_PARAM_COMP_MAKE_UP: - { - lv_slider_set_range(objects.ui_compressor_gain_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_compressor_gain_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d db", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_compressor_gain_value, value_string); - } break; - - case TONEX_PARAM_COMP_ATTACK: - { - lv_slider_set_range(objects.ui_compressor_attack_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_compressor_attack_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d ms", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_compressor_attack_value, value_string); - } break; - - case TONEX_PARAM_EQ_POST: - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_eq_post_switch, LV_STATE_CHECKED); - } - else - { - lv_obj_clear_state(objects.ui_eq_post_switch, LV_STATE_CHECKED); - } - updateIconOrder(); - } break; - - case TONEX_PARAM_EQ_BASS: - { - lv_slider_set_range(objects.ui_eq_bass_slider, round(param_entry->Min), round(param_entry->Max * 10.0f)); - lv_slider_set_value(objects.ui_eq_bass_slider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_eq_bass_value, value_string); - } break; - - case TONEX_PARAM_EQ_BASS_FREQ: - { - // not exposed via UI - } break; - - case TONEX_PARAM_EQ_MID: - { - lv_slider_set_range(objects.ui_eq_mid_slider, round(param_entry->Min), round(param_entry->Max * 10.0f)); - lv_slider_set_value(objects.ui_eq_mid_slider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_eq_mid_value, value_string); - } break; - - case TONEX_PARAM_EQ_MIDQ: - { - lv_slider_set_range(objects.ui_eq_mid_qslider, round(param_entry->Min * 10.0f), round(param_entry->Max * 10.0f)); - lv_slider_set_value(objects.ui_eq_mid_qslider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_eq_mid_qvalue, value_string); - } break; - - case TONEX_PARAM_EQ_MID_FREQ: - { - // not exposed via UI - } break; - - case TONEX_PARAM_EQ_TREBLE: - { - lv_slider_set_range(objects.ui_eq_treble_slider, round(param_entry->Min), round(param_entry->Max * 10.0f)); - lv_slider_set_value(objects.ui_eq_treble_slider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_eq_treble_value, value_string); - } break; - - case TONEX_PARAM_EQ_TREBLE_FREQ: - { - // not exposed via UI - } break; - - case TONEX_PARAM_MODEL_AMP_ENABLE: - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_amp_enable_switch, LV_STATE_CHECKED); - lv_img_set_src(objects.ui_icon_amp, (lv_obj_t*)&img_effect_icon_amp_on); - } - else - { - lv_obj_clear_state(objects.ui_amp_enable_switch, LV_STATE_CHECKED); - lv_img_set_src(objects.ui_icon_amp, (lv_obj_t*)&img_effect_icon_amp_off); - } - } break; - - case TONEX_PARAM_MODEL_SW1: - { - // not exposed via UI - } break; - - case TONEX_PARAM_CABINET_TYPE: - { - lv_dropdown_set_selected(objects.ui_cabinet_model_dropdown, param_entry->Value); - - if (param_entry->Value == TONEX_CABINET_DISABLED) - { - lv_img_set_src(objects.ui_icon_cab, (lv_obj_t*)&img_effect_icon_cab_off); - } - else - { - lv_img_set_src(objects.ui_icon_cab, (lv_obj_t*)&img_effect_icon_cab_on); - } - } break; - - case TONEX_PARAM_MODEL_GAIN: - { - lv_slider_set_range(objects.ui_amplifier_gain_slider, round(param_entry->Min), round(param_entry->Max * 10.0f)); - lv_slider_set_value(objects.ui_amplifier_gain_slider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_amplifier_gain_value, value_string); - } break; - - case TONEX_PARAM_MODEL_VOLUME: - { - lv_slider_set_range(objects.ui_amplifier_volume_slider, round(param_entry->Min), round(param_entry->Max * 10.0f)); - lv_slider_set_value(objects.ui_amplifier_volume_slider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_amplifier_volume_value, value_string); - } break; - - case TONEX_PARAM_MODEX_MIX: - { - // not exposed via UI - } break; - - case TONEX_PARAM_MODEL_PRESENCE: - { - lv_slider_set_range(objects.ui_amplifier_presense_slider, round(param_entry->Min), round(param_entry->Max * 10.0f)); - lv_slider_set_value(objects.ui_amplifier_presense_slider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_amplifier_presense_value, value_string); - } break; - - //case TONEX_PARAM_CABINET_UNKNOWN: - //{ - // not exposed via UI - //} break; - - //case TONEX_PARAM_VIR_CABINET: - //{ - // not exposed via UI - //} break; - - case TONEX_PARAM_MODEL_DEPTH: - { - lv_slider_set_range(objects.ui_amplifier_depth_slider, round(param_entry->Min), round(param_entry->Max * 10.0f)); - lv_slider_set_value(objects.ui_amplifier_depth_slider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_amplifier_depth_value, value_string); - } break; - - case TONEX_PARAM_VIR_RESO: - { - // not exposed via UI - } break; - - case TONEX_PARAM_VIR_MIC_1: - { - // not exposed via UI - } break; - - case TONEX_PARAM_VIR_MIC_1_X: - { - // not exposed via UI - } break; - - case TONEX_PARAM_VIR_MIC_1_Z: - { - // not exposed via UI - } break; - - case TONEX_PARAM_VIR_MIC_2: - { - // not exposed via UI - } break; - - case TONEX_PARAM_VIR_MIC_2_X: - { - // not exposed via UI - } break; - - case TONEX_PARAM_VIR_MIC_2_Z: - { - // not exposed via UI - } break; - - case TONEX_PARAM_VIR_BLEND: - { - // not exposed via UI - } break; - - case TONEX_PARAM_REVERB_POSITION: - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_reverb_post_switch, LV_STATE_CHECKED); - } - else - { - lv_obj_clear_state(objects.ui_reverb_post_switch, LV_STATE_CHECKED); - } - updateIconOrder(); - } break; - - case TONEX_PARAM_REVERB_ENABLE: - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_reverb_enable_switch, LV_STATE_CHECKED); - - // show enabled icon with letter to indicate the type - switch ((int)param_ptr[TONEX_PARAM_REVERB_MODEL].Value) - { - case TONEX_REVERB_SPRING_1: - { - lv_img_set_src(objects.ui_icon_reverb, (lv_obj_t*)&img_effect_icon_reverb_on_s1); - } break; - - case TONEX_REVERB_SPRING_2: - { - lv_img_set_src(objects.ui_icon_reverb, (lv_obj_t*)&img_effect_icon_reverb_on_s2); - } break; - - case TONEX_REVERB_SPRING_3: - { - lv_img_set_src(objects.ui_icon_reverb, (lv_obj_t*)&img_effect_icon_reverb_on_s3); - } break; - - case TONEX_REVERB_SPRING_4: - { - lv_img_set_src(objects.ui_icon_reverb, (lv_obj_t*)&img_effect_icon_reverb_on_s4); - } break; - - case TONEX_REVERB_ROOM: - { - lv_img_set_src(objects.ui_icon_reverb, (lv_obj_t*)&img_effect_icon_reverb_on_r); - } break; - - case TONEX_REVERB_PLATE: - default: - { - lv_img_set_src(objects.ui_icon_reverb, (lv_obj_t*)&img_effect_icon_reverb_on_p); - } break; - } - } - else - { - lv_obj_clear_state(objects.ui_reverb_enable_switch, LV_STATE_CHECKED); - lv_img_set_src(objects.ui_icon_reverb, (lv_obj_t*)&img_effect_icon_reverb_off); - } - } break; - - case TONEX_PARAM_REVERB_MODEL: - { - lv_dropdown_set_selected(objects.ui_reverb_model_dropdown, param_entry->Value); - } break; - - case TONEX_PARAM_REVERB_SPRING1_TIME: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_1) - { - lv_slider_set_range(objects.ui_reverb_time_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_time_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_reverb_time_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING1_PREDELAY: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_1) - { - lv_slider_set_range(objects.ui_reverb_predelay_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_predelay_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d ms", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_predelay_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING1_COLOR: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_1) - { - lv_slider_set_range(objects.ui_reverb_color_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_color_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_color_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING1_MIX: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_1) - { - lv_slider_set_range(objects.ui_reverb_mix_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_mix_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_mix_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING2_TIME: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_2) - { - lv_slider_set_range(objects.ui_reverb_time_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_time_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_reverb_time_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING2_PREDELAY: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_2) - { - lv_slider_set_range(objects.ui_reverb_predelay_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_predelay_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d ms", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_predelay_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING2_COLOR: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_2) - { - lv_slider_set_range(objects.ui_reverb_color_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_color_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_color_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING2_MIX: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_2) - { - lv_slider_set_range(objects.ui_reverb_mix_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_mix_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_mix_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING3_TIME: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_3) - { - lv_slider_set_range(objects.ui_reverb_time_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_time_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_reverb_time_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING3_PREDELAY: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_3) - { - lv_slider_set_range(objects.ui_reverb_predelay_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_predelay_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d ms", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_predelay_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING3_COLOR: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_3) - { - lv_slider_set_range(objects.ui_reverb_color_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_color_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_color_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING3_MIX: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_3) - { - lv_slider_set_range(objects.ui_reverb_mix_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_mix_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_mix_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING4_TIME: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_4) - { - lv_slider_set_range(objects.ui_reverb_time_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_time_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_reverb_time_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING4_PREDELAY: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_4) - { - lv_slider_set_range(objects.ui_reverb_predelay_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_predelay_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d ms", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_predelay_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING4_COLOR: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_4) - { - lv_slider_set_range(objects.ui_reverb_color_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_color_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_color_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_SPRING4_MIX: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_4) - { - lv_slider_set_range(objects.ui_reverb_mix_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_mix_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_mix_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_ROOM_TIME: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_ROOM) - { - lv_slider_set_range(objects.ui_reverb_time_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_time_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_reverb_time_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_ROOM_PREDELAY: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_ROOM) - { - lv_slider_set_range(objects.ui_reverb_predelay_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_predelay_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d ms", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_predelay_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_ROOM_COLOR: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_ROOM) - { - lv_slider_set_range(objects.ui_reverb_color_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_color_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_color_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_ROOM_MIX: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_ROOM) - { - lv_slider_set_range(objects.ui_reverb_mix_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_mix_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_mix_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_PLATE_TIME: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_PLATE) - { - lv_slider_set_range(objects.ui_reverb_time_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_time_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_reverb_time_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_PLATE_PREDELAY: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_PLATE) - { - lv_slider_set_range(objects.ui_reverb_predelay_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_predelay_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d ms", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_predelay_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_PLATE_COLOR: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_PLATE) - { - lv_slider_set_range(objects.ui_reverb_color_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_color_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_color_value, value_string); - } - } break; - - case TONEX_PARAM_REVERB_PLATE_MIX: - { - if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_PLATE) - { - lv_slider_set_range(objects.ui_reverb_mix_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_reverb_mix_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_reverb_mix_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_POST: - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_modulation_post_switch, LV_STATE_CHECKED); - } - else - { - lv_obj_clear_state(objects.ui_modulation_post_switch, LV_STATE_CHECKED); - } - updateIconOrder(); - } break; - - case TONEX_PARAM_MODULATION_ENABLE: - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_modulation_enable_switch, LV_STATE_CHECKED); - - // show enabled icon with letter to indicate the type - switch ((int)param_ptr[TONEX_PARAM_MODULATION_MODEL].Value) - { - case TONEX_MODULATION_CHORUS: - { - lv_img_set_src(objects.ui_icon_mod, (lv_obj_t*)&img_effect_icon_mod_on_chorus); - } break; - - case TONEX_MODULATION_TREMOLO: - { - lv_img_set_src(objects.ui_icon_mod, (lv_obj_t*)&img_effect_icon_mod_on_tremolo); - } break; - - case TONEX_MODULATION_PHASER: - { - lv_img_set_src(objects.ui_icon_mod, (lv_obj_t*)&img_effect_icon_mod_on_phaser); - } break; - - case TONEX_MODULATION_FLANGER: - { - lv_img_set_src(objects.ui_icon_mod, (lv_obj_t*)&img_effect_icon_mod_on_flanger); - } break; - - case TONEX_MODULATION_ROTARY: - default: - { - lv_img_set_src(objects.ui_icon_mod, (lv_obj_t*)&img_effect_icon_mod_on_rotary); - } break; - } - } - else - { - lv_obj_clear_state(objects.ui_modulation_enable_switch, LV_STATE_CHECKED); - lv_img_set_src(objects.ui_icon_mod, (lv_obj_t*)&img_effect_icon_mod_off); - } - } break; - - case TONEX_PARAM_MODULATION_MODEL: - { - lv_dropdown_set_selected(objects.ui_modulation_model_dropdown, param_entry->Value); - - // configure the variable UI items - switch ((int)param_entry->Value) - { - case TONEX_MODULATION_CHORUS: - { - lv_label_set_text(objects.ui_modulation_param1_label, "Rate"); - lv_label_set_text(objects.ui_modulation_param2_label, "Depth"); - lv_label_set_text(objects.ui_modulation_param3_label, "Level"); - lv_obj_add_flag(objects.ui_modulation_param4_label, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_modulation_param4_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_modulation_param4_value, LV_OBJ_FLAG_HIDDEN); - } break; - - case TONEX_MODULATION_TREMOLO: - { - lv_label_set_text(objects.ui_modulation_param1_label, "Rate"); - lv_label_set_text(objects.ui_modulation_param2_label, "Shape"); - lv_label_set_text(objects.ui_modulation_param3_label, "Spread"); - lv_label_set_text(objects.ui_modulation_param4_label, "Level"); - lv_obj_clear_flag(objects.ui_modulation_param4_label, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_param4_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_param4_value, LV_OBJ_FLAG_HIDDEN); - } break; - - case TONEX_MODULATION_PHASER: - { - lv_label_set_text(objects.ui_modulation_param1_label, "Rate"); - lv_label_set_text(objects.ui_modulation_param2_label, "Depth"); - lv_label_set_text(objects.ui_modulation_param3_label, "Level"); - lv_obj_add_flag(objects.ui_modulation_param4_label, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_modulation_param4_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_modulation_param4_value, LV_OBJ_FLAG_HIDDEN); - } break; - - case TONEX_MODULATION_FLANGER: - { - lv_label_set_text(objects.ui_modulation_param1_label, "Rate"); - lv_label_set_text(objects.ui_modulation_param2_label, "Depth"); - lv_label_set_text(objects.ui_modulation_param3_label, "Feedback"); - lv_label_set_text(objects.ui_modulation_param4_label, "Level"); - lv_obj_clear_flag(objects.ui_modulation_param4_label, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_param4_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_param4_value, LV_OBJ_FLAG_HIDDEN); - } break; - - case TONEX_MODULATION_ROTARY: - { - lv_label_set_text(objects.ui_modulation_param1_label, "Speed"); - lv_label_set_text(objects.ui_modulation_param2_label, "Radius"); - lv_label_set_text(objects.ui_modulation_param3_label, "Spread"); - lv_label_set_text(objects.ui_modulation_param4_label, "Level"); - lv_obj_clear_flag(objects.ui_modulation_param4_label, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_param4_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_param4_value, LV_OBJ_FLAG_HIDDEN); - } break; - - default: - { - ESP_LOGW(TAG, "Unknown modulation model: %d", (int)param_entry->Value); - } break; - } - } break; - - case TONEX_PARAM_MODULATION_CHORUS_SYNC: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_CHORUS) - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); - lv_obj_add_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); - } - else - { - lv_obj_clear_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); - lv_obj_clear_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); - } - } - } break; - - case TONEX_PARAM_MODULATION_CHORUS_TS: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_CHORUS) - { - lv_dropdown_set_selected(objects.ui_modulation_ts_dropdown, param_entry->Value); - } - } break; - - case TONEX_PARAM_MODULATION_CHORUS_RATE: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_CHORUS) - { - lv_slider_set_range(objects.ui_modulation_param1_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param1_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f Hz", param_entry->Value); - lv_label_set_text(objects.ui_modulation_param1_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_CHORUS_DEPTH: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_CHORUS) - { - lv_slider_set_range(objects.ui_modulation_param2_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param2_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_modulation_param2_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_CHORUS_LEVEL: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_CHORUS) - { - lv_slider_set_range(objects.ui_modulation_param3_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param3_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_modulation_param3_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_TREMOLO_SYNC: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_TREMOLO) - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); - lv_obj_add_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); - } - else - { - lv_obj_clear_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); - lv_obj_clear_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); - } - } - } break; - - case TONEX_PARAM_MODULATION_TREMOLO_TS: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_TREMOLO) - { - lv_dropdown_set_selected(objects.ui_modulation_ts_dropdown, param_entry->Value); - } - } break; - - case TONEX_PARAM_MODULATION_TREMOLO_RATE: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_TREMOLO) - { - lv_slider_set_range(objects.ui_modulation_param1_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param1_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f Hz", param_entry->Value); - lv_label_set_text(objects.ui_modulation_param1_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_TREMOLO_SHAPE: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_TREMOLO) - { - lv_slider_set_range(objects.ui_modulation_param2_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param2_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_modulation_param2_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_TREMOLO_SPREAD: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_TREMOLO) - { - lv_slider_set_range(objects.ui_modulation_param3_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param3_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_modulation_param3_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_TREMOLO_LEVEL: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_TREMOLO) - { - lv_slider_set_range(objects.ui_modulation_param4_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param4_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_modulation_param4_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_PHASER_SYNC: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_PHASER) - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); - lv_obj_add_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); - } - else - { - lv_obj_clear_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); - lv_obj_clear_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); - } - } - } break; - - case TONEX_PARAM_MODULATION_PHASER_TS: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_PHASER) - { - lv_dropdown_set_selected(objects.ui_modulation_ts_dropdown, param_entry->Value); - } - } break; - - case TONEX_PARAM_MODULATION_PHASER_RATE: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_PHASER) - { - lv_slider_set_range(objects.ui_modulation_param1_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param1_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f Hz", param_entry->Value); - lv_label_set_text(objects.ui_modulation_param1_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_PHASER_DEPTH: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_PHASER) - { - lv_slider_set_range(objects.ui_modulation_param2_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param2_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_modulation_param2_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_PHASER_LEVEL: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_PHASER) - { - lv_slider_set_range(objects.ui_modulation_param3_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param3_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_modulation_param3_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_FLANGER_SYNC: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_FLANGER) - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); - lv_obj_add_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); - } - else - { - lv_obj_clear_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); - lv_obj_clear_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); - } - } - } break; - - case TONEX_PARAM_MODULATION_FLANGER_TS: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_FLANGER) - { - lv_dropdown_set_selected(objects.ui_modulation_ts_dropdown, param_entry->Value); - } - } break; - - case TONEX_PARAM_MODULATION_FLANGER_RATE: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_FLANGER) - { - lv_slider_set_range(objects.ui_modulation_param1_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param1_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f Hz", param_entry->Value); - lv_label_set_text(objects.ui_modulation_param1_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_FLANGER_DEPTH: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_FLANGER) - { - lv_slider_set_range(objects.ui_modulation_param2_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param2_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_modulation_param2_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_FLANGER_FEEDBACK: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_FLANGER) - { - lv_slider_set_range(objects.ui_modulation_param3_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param3_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_modulation_param3_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_FLANGER_LEVEL: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_FLANGER) - { - lv_slider_set_range(objects.ui_modulation_param4_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param4_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_modulation_param4_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_ROTARY_SYNC: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_ROTARY) - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); - lv_obj_add_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); - } - else - { - lv_obj_clear_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); - lv_obj_clear_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); - } - } - } break; - - case TONEX_PARAM_MODULATION_ROTARY_TS: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_ROTARY) - { - lv_dropdown_set_selected(objects.ui_modulation_ts_dropdown, param_entry->Value); - } - } break; - - case TONEX_PARAM_MODULATION_ROTARY_SPEED: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_ROTARY) - { - lv_slider_set_range(objects.ui_modulation_param1_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param1_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d RPM", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_modulation_param1_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_ROTARY_RADIUS: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_ROTARY) - { - lv_slider_set_range(objects.ui_modulation_param2_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param2_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d mm", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_modulation_param2_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_ROTARY_SPREAD: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_ROTARY) - { - lv_slider_set_range(objects.ui_modulation_param3_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param3_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_modulation_param3_value, value_string); - } - } break; - - case TONEX_PARAM_MODULATION_ROTARY_LEVEL: - { - if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_ROTARY) - { - lv_slider_set_range(objects.ui_modulation_param4_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_modulation_param4_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_modulation_param4_value, value_string); - } - } break; - - case TONEX_PARAM_DELAY_POST: - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_delay_post_switch, LV_STATE_CHECKED); - } - else - { - lv_obj_clear_state(objects.ui_delay_post_switch, LV_STATE_CHECKED); - } - updateIconOrder(); - } break; - - case TONEX_PARAM_DELAY_ENABLE: - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_delay_enable_switch, LV_STATE_CHECKED); - - // show enabled icon with letter to indicate the type - switch ((int)param_ptr[TONEX_PARAM_DELAY_MODEL].Value) - { - case TONEX_DELAY_DIGITAL: - { - lv_img_set_src(objects.ui_icon_delay, (lv_obj_t*)&img_effect_icon_delay_on_d); - } break; - - case TONEX_DELAY_TAPE: - default: - { - lv_img_set_src(objects.ui_icon_delay, (lv_obj_t*)&img_effect_icon_delay_on_t); - } break; - } - } - else - { - lv_obj_clear_state(objects.ui_delay_enable_switch, LV_STATE_CHECKED); - lv_img_set_src(objects.ui_icon_delay, (lv_obj_t*)&img_effect_icon_delay_off); - } - } break; - - case TONEX_PARAM_DELAY_MODEL: - { - lv_dropdown_set_selected(objects.ui_delay_model_dropdown, param_entry->Value); - } break; - - case TONEX_PARAM_DELAY_DIGITAL_SYNC: - { - if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_DIGITAL) - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_delay_sync_switch, LV_STATE_CHECKED); - lv_obj_add_flag(objects.ui_delay_ts_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_delay_ts_value, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_delay_ts_dropdown, LV_OBJ_FLAG_HIDDEN); - } - else - { - lv_obj_clear_state(objects.ui_delay_sync_switch, LV_STATE_CHECKED); - lv_obj_clear_flag(objects.ui_delay_ts_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_delay_ts_value, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_delay_ts_dropdown, LV_OBJ_FLAG_HIDDEN); - } - } - } break; - - case TONEX_PARAM_DELAY_DIGITAL_TS: - { - if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_DIGITAL) - { - lv_dropdown_set_selected(objects.ui_delay_ts_dropdown, param_entry->Value); - } - } break; - - case TONEX_PARAM_DELAY_DIGITAL_TIME: - { - if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_DIGITAL) - { - lv_slider_set_range(objects.ui_delay_ts_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_delay_ts_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d ms", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_delay_ts_value, value_string); - } - } break; - - case TONEX_PARAM_DELAY_DIGITAL_FEEDBACK: - { - if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_DIGITAL) - { - lv_slider_set_range(objects.ui_delay_feedback_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_delay_feedback_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_delay_feedback_value, value_string); - } - } break; - - case TONEX_PARAM_DELAY_DIGITAL_MODE: - { - if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_DIGITAL) - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_delay_ping_pong_switch, LV_STATE_CHECKED); - } - else - { - lv_obj_clear_state(objects.ui_delay_ping_pong_switch, LV_STATE_CHECKED); - } - } - } break; - - case TONEX_PARAM_DELAY_DIGITAL_MIX: - { - if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_DIGITAL) - { - lv_slider_set_range(objects.ui_delay_mix_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_delay_mix_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_delay_mix_value, value_string); - } - } break; - - case TONEX_PARAM_DELAY_TAPE_SYNC: - { - if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_TAPE) - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_delay_sync_switch, LV_STATE_CHECKED); - lv_obj_add_flag(objects.ui_delay_ts_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_delay_ts_value, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_delay_ts_dropdown, LV_OBJ_FLAG_HIDDEN); - } - else - { - lv_obj_clear_state(objects.ui_delay_sync_switch, LV_STATE_CHECKED); - lv_obj_clear_flag(objects.ui_delay_ts_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_delay_ts_value, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_delay_ts_dropdown, LV_OBJ_FLAG_HIDDEN); - } - } - } break; - - case TONEX_PARAM_DELAY_TAPE_TS: - { - if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_TAPE) - { - lv_dropdown_set_selected(objects.ui_delay_ts_dropdown, param_entry->Value); - } - } break; - - case TONEX_PARAM_DELAY_TAPE_TIME: - { - if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_TAPE) - { - lv_slider_set_range(objects.ui_delay_ts_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_delay_ts_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d ms", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_delay_ts_value, value_string); - } - } break; - - case TONEX_PARAM_DELAY_TAPE_FEEDBACK: - { - if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_TAPE) - { - lv_slider_set_range(objects.ui_delay_feedback_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_delay_feedback_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_delay_feedback_value, value_string); - } - } break; - - case TONEX_PARAM_DELAY_TAPE_MODE: - { - if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_TAPE) - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_delay_ping_pong_switch, LV_STATE_CHECKED); - } - else - { - lv_obj_clear_state(objects.ui_delay_ping_pong_switch, LV_STATE_CHECKED); - } - } - } break; - - case TONEX_PARAM_DELAY_TAPE_MIX: - { - if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_TAPE) - { - lv_slider_set_range(objects.ui_delay_mix_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_delay_mix_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d%%", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_delay_mix_value, value_string); - } - } break; - - case TONEX_GLOBAL_CABSIM_BYPASS: - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_cab_bypass_switch, LV_STATE_CHECKED); - } - else - { - lv_obj_clear_state(objects.ui_cab_bypass_switch, LV_STATE_CHECKED); - } - } break; - - case TONEX_GLOBAL_TEMPO_SOURCE: - { - if (param_entry->Value) - { - lv_obj_add_state(objects.ui_tempo_source_switch, LV_STATE_CHECKED); - } - else - { - lv_obj_clear_state(objects.ui_tempo_source_switch, LV_STATE_CHECKED); - } - } break; - - case TONEX_GLOBAL_BPM: - { - lv_slider_set_range(objects.ui_bpm_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_bpm_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f", param_entry->Value); - lv_label_set_text(objects.ui_bpm_value, value_string); - - char buf[128]; - sprintf(buf, "%.1f", param_entry->Value); - lv_label_set_text(objects.ui_bpm_value_label, buf); - -#if CONFIG_TONEX_CONTROLLER_SHOW_BPM_INDICATOR - ui_BPMAnimate(objects.ui_bpm_indicator, 1000 * 60 / param_entry->Value); -#endif - } break; - - case TONEX_GLOBAL_INPUT_TRIM: - { - lv_slider_set_range(objects.ui_input_trim_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_input_trim_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f db", param_entry->Value); - lv_label_set_text(objects.ui_input_trim_value, value_string); - } break; - - case TONEX_GLOBAL_TUNING_REFERENCE: - { - lv_slider_set_range(objects.ui_tuning_reference_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_tuning_reference_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%d Hz", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_tuning_reference_value, value_string); - } break; - - case TONEX_GLOBAL_MASTER_VOLUME: - { - lv_slider_set_range(objects.ui_volume_slider, round(param_entry->Min), round(param_entry->Max)); - lv_slider_set_value(objects.ui_volume_slider, round(param_entry->Value), LV_ANIM_OFF); - - // show value and units - sprintf(value_string, "%1.1f db", param_entry->Value); - lv_label_set_text(objects.ui_volume_value, value_string); - } break; - } - - tonex_params_release_locked_access(); - } - } -#endif - -#if CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_169 \ - || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_169TOUCH \ - || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_M5ATOMS3R \ - || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_LILYGO_TDISPLAY_S3 \ - || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_19TOUCH - ESP_LOGI(TAG, "Syncing params to UI"); - - tModellerParameter* param_ptr; + tonex_update_ui_parameters(); + } break; - for (uint16_t param = 0; param < TONEX_GLOBAL_LAST; param++) - { - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + case AMP_MODELLER_VALETON_GP5: { - tModellerParameter* param_entry = ¶m_ptr[param]; - - // debug - //ESP_LOGI(TAG, "Param %d: val: %02f, min: %02f, max: %02f", param, param_entry->Value, param_entry->Min, param_entry->Max); - - switch (param) - { - case TONEX_GLOBAL_BPM: - { - char buf[128]; - sprintf(buf, "%d", (int)round(param_entry->Value)); - lv_label_set_text(objects.ui_bpm, buf); - } break; - - case TONEX_PARAM_COMP_ENABLE: - { - if (param_entry->Value) - { - lv_obj_set_style_border_color(objects.ui_cstatus, lv_color_hex(0xDDDD00), LV_PART_MAIN | LV_STATE_DEFAULT); - } - else - { - lv_obj_set_style_border_color(objects.ui_cstatus, lv_color_hex(0x563F2A), LV_PART_MAIN | LV_STATE_DEFAULT); - } - } break; - - case TONEX_PARAM_MODULATION_ENABLE: - { - if (param_entry->Value) - { - lv_obj_set_style_border_color(objects.ui_mstatus, lv_color_hex(0xEEAA00), LV_PART_MAIN | LV_STATE_DEFAULT); - } - else - { - lv_obj_set_style_border_color(objects.ui_mstatus, lv_color_hex(0x563F2A), LV_PART_MAIN | LV_STATE_DEFAULT); - } - } break; - - case TONEX_PARAM_DELAY_ENABLE: - { - if (param_entry->Value) - { - lv_obj_set_style_border_color(objects.ui_dstatus, lv_color_hex(0x00CC00), LV_PART_MAIN | LV_STATE_DEFAULT); - } - else - { - lv_obj_set_style_border_color(objects.ui_dstatus, lv_color_hex(0x563F2A), LV_PART_MAIN | LV_STATE_DEFAULT); - } - } break; - - case TONEX_PARAM_REVERB_ENABLE: - { - if (param_entry->Value) - { - lv_obj_set_style_border_color(objects.ui_rstatus, lv_color_hex(0x33FFFF), LV_PART_MAIN | LV_STATE_DEFAULT); - } - else - { - lv_obj_set_style_border_color(objects.ui_rstatus, lv_color_hex(0x563F2A), LV_PART_MAIN | LV_STATE_DEFAULT); - } - } break; - - } - - tonex_params_release_locked_access(); - } + valeton_update_ui_parameters(); + } break; } -#endif } break; case UI_ELEMENT_TOAST: diff --git a/source/main/display.h b/source/main/display.h index 72552e64..c18b2467 100644 --- a/source/main/display.h +++ b/source/main/display.h @@ -41,6 +41,7 @@ void display_lvgl_touch_cb(lv_indev_drv_t * drv, lv_indev_data_t * data); void display_lvgl_flush_cb(lv_disp_drv_t *drv, const lv_area_t *area, lv_color_t *color_map); bool display_notify_lvgl_flush_ready(esp_lcd_panel_io_handle_t panel_io, esp_lcd_panel_io_event_data_t *edata, void *user_ctx); bool display_on_vsync_event(esp_lcd_panel_handle_t panel, const esp_lcd_rgb_panel_event_data_t *event_data, void *user_data); +void ui_BPMAnimate(lv_obj_t *target_obj, uint32_t duration); // thread-safe API for other tasks to update the UI void UI_SetUSBStatus(uint8_t state); diff --git a/source/main/display_tonex.c b/source/main/display_tonex.c new file mode 100644 index 00000000..4a8d6056 --- /dev/null +++ b/source/main/display_tonex.c @@ -0,0 +1,2548 @@ +/* + Copyright (C) 2025 Greg Smith + +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. + +*/ + +#include +#include "sdkconfig.h" +#include +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "freertos/semphr.h" +#include "esp_timer.h" +#include "esp_lcd_panel_ops.h" +#include "esp_lcd_panel_rgb.h" +#include "driver/gpio.h" +#include "esp_err.h" +#include "esp_system.h" +#include "esp_wifi.h" +#include "esp_event.h" +#include "esp_log.h" +#include "nvs_flash.h" +#include "driver/uart.h" +#include "driver/gpio.h" +#include "driver/spi_master.h" +#include "lvgl.h" +#include "demos/lv_demos.h" +#include "esp_lcd_panel_io.h" +#include "esp_lcd_panel_vendor.h" +#include "esp_lcd_panel_ops.h" +#include "esp_vfs.h" +#include "esp_vfs_fat.h" +#include "esp_ota_ops.h" +#include "sys/param.h" +#include "esp_wifi.h" +#include "esp_log.h" +#include "esp_mac.h" +#include "esp_crc.h" +#include "esp_now.h" +#include "driver/i2c.h" +#include "soc/lldesc.h" +#include "esp_lcd_touch_gt911.h" +#include "esp_lcd_touch_cst816s.h" +#include "esp_lcd_gc9107.h" +#include "esp_lcd_sh8601.h" +#include "esp_intr_alloc.h" +#include "main.h" +#if CONFIG_TONEX_CONTROLLER_HAS_DISPLAY + #include "ui.h" + #include "images.h" + #include "actions.h" +#endif +#include "usb/usb_host.h" +#include "usb/cdc_acm_host.h" +#include "esp_partition.h" +#include "usb_comms.h" +#include "usb_tonex_common.h" +#include "usb_tonex_one.h" +#include "usb_tonex.h" +#include "display.h" +#include "display_tonex.h" +#include "CH422G.h" +#include "control.h" +#include "task_priorities.h" +#include "midi_control.h" +#include "LP5562.h" +#include "tonex_params.h" +#include "platform_common.h" + +static const char *TAG = "app_display_tonex"; + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +void tonex_show_settings_tab(lv_event_t * e) +{ +#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI + lv_obj_t* target = lv_event_get_current_target(e); + + if (target == objects.ui_icon_eq) + { + // show EQ settings + lv_tabview_set_act(objects.ui_settings_tab_view, CONFIG_TAB_EQ, LV_ANIM_OFF); + } + else if (target == objects.ui_icon_gate) + { + // show gate settings + lv_tabview_set_act(objects.ui_settings_tab_view, CONFIG_TAB_GATE, LV_ANIM_OFF); + } + else if ((target == objects.ui_icon_amp) || (target == objects.ui_icon_cab)) + { + // show amp settings + lv_tabview_set_act(objects.ui_settings_tab_view, CONFIG_TAB_AMPLIFIER, LV_ANIM_OFF); + } + else if (target == objects.ui_icon_comp) + { + // show comnpressor settings + lv_tabview_set_act(objects.ui_settings_tab_view, CONFIG_TAB_COMPRESSOR, LV_ANIM_OFF); + } + else if (target == objects.ui_icon_mod) + { + // show modulation settings + lv_tabview_set_act(objects.ui_settings_tab_view, CONFIG_TAB_MODULATION, LV_ANIM_OFF); + } + else if (target == objects.ui_icon_delay) + { + // show delay settings + lv_tabview_set_act(objects.ui_settings_tab_view, CONFIG_TAB_DELAY, LV_ANIM_OFF); + } + else if (target == objects.ui_icon_reverb) + { + // show reverb settings + lv_tabview_set_act(objects.ui_settings_tab_view, CONFIG_TAB_REVERB, LV_ANIM_OFF); + } +#endif //CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +void tonex_action_effect_icon_clicked(lv_event_t * e) +{ +#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI + tModellerParameter* param_ptr; + float value; + lv_event_code_t event_code = lv_event_get_code(e); + lv_obj_t* event_object = lv_event_get_target(e); + + // called from LVGL + ESP_LOGI(TAG, "action_effect_icon_clicked"); + + if (event_code == LV_EVENT_SHORT_CLICKED) + { + if (event_object == objects.ui_icon_reverb) + { + ESP_LOGI(TAG, "UI Toggle reverb"); + + tonex_params_get_locked_access(¶m_ptr); + if (param_ptr[TONEX_PARAM_REVERB_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + tonex_params_release_locked_access(); + + usb_modify_parameter(TONEX_PARAM_REVERB_ENABLE, value); + } + else if (event_object == objects.ui_icon_delay) + { + ESP_LOGI(TAG, "UI Toggle delay"); + + tonex_params_get_locked_access(¶m_ptr); + if (param_ptr[TONEX_PARAM_DELAY_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + tonex_params_release_locked_access(); + + usb_modify_parameter(TONEX_PARAM_DELAY_ENABLE, value); + } + else if (event_object == objects.ui_icon_mod) + { + ESP_LOGI(TAG, "UI Toggle mod"); + + tonex_params_get_locked_access(¶m_ptr); + if (param_ptr[TONEX_PARAM_MODULATION_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + tonex_params_release_locked_access(); + + usb_modify_parameter(TONEX_PARAM_MODULATION_ENABLE, value); + } + else if (event_object == objects.ui_icon_comp) + { + ESP_LOGI(TAG, "UI Toggle comp"); + + tonex_params_get_locked_access(¶m_ptr); + if (param_ptr[TONEX_PARAM_COMP_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + tonex_params_release_locked_access(); + + usb_modify_parameter(TONEX_PARAM_COMP_ENABLE, value); + } + else if (event_object == objects.ui_icon_cab) + { + ESP_LOGI(TAG, "UI Toggle cab"); + + tonex_params_get_locked_access(¶m_ptr); + if (param_ptr[TONEX_PARAM_CABINET_TYPE].Value == TONEX_CABINET_DISABLED) + { + //todo here: this could have been a VIR cabinet + value = TONEX_CABINET_TONE_MODEL; + } + else + { + value = TONEX_CABINET_DISABLED; + } + tonex_params_release_locked_access(); + + usb_modify_parameter(TONEX_PARAM_CABINET_TYPE, value); + } + else if (event_object == objects.ui_icon_amp) + { + ESP_LOGI(TAG, "UI Toggle amp"); + + tonex_params_get_locked_access(¶m_ptr); + if (param_ptr[TONEX_PARAM_MODEL_AMP_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + tonex_params_release_locked_access(); + + usb_modify_parameter(TONEX_PARAM_MODEL_AMP_ENABLE, value); + } + else if (event_object == objects.ui_icon_gate) + { + ESP_LOGI(TAG, "UI Toggle gate"); + + tonex_params_get_locked_access(¶m_ptr); + if (param_ptr[TONEX_PARAM_NOISE_GATE_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + tonex_params_release_locked_access(); + + usb_modify_parameter(TONEX_PARAM_NOISE_GATE_ENABLE, value); + } + else if (event_object == objects.ui_icon_eq) + { + // no short press action + } + } + else if (event_code == LV_EVENT_LONG_PRESSED) + { + // change to settings page and jump to relevant tab + action_show_settings_page(e); + tonex_show_settings_tab(e); + } +#endif //CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +void tonex_action_parameter_changed(lv_event_t * e) +{ +#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI + // get the object that was changed + lv_obj_t* obj = lv_event_get_current_target(e); + + ESP_LOGI(TAG, "Tonex Parameter changed"); + + // see what it was, and update the pedal + if (obj == objects.ui_noise_gate_switch) + { + usb_modify_parameter(TONEX_PARAM_NOISE_GATE_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_noise_gate_post_switch) + { + usb_modify_parameter(TONEX_PARAM_NOISE_GATE_POST, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_noise_gate_threshold_slider) + { + usb_modify_parameter(TONEX_PARAM_NOISE_GATE_THRESHOLD, lv_slider_get_value(obj)); + } + else if (obj == objects.ui_noise_gate_release_slider) + { + usb_modify_parameter(TONEX_PARAM_NOISE_GATE_RELEASE, lv_slider_get_value(obj)); + } + else if (obj == objects.ui_noise_gate_depth_slider) + { + usb_modify_parameter(TONEX_PARAM_NOISE_GATE_DEPTH, lv_slider_get_value(obj)); + } + else if (obj == objects.ui_compressor_enable_switch) + { + usb_modify_parameter(TONEX_PARAM_COMP_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_compressor_post_switch) + { + usb_modify_parameter(TONEX_PARAM_COMP_POST, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_compressor_threshold_slider) + { + usb_modify_parameter(TONEX_PARAM_COMP_THRESHOLD, lv_slider_get_value(obj)); + } + else if (obj == objects.ui_compressor_attack_slider) + { + usb_modify_parameter(TONEX_PARAM_COMP_ATTACK, lv_slider_get_value(obj)); + } + else if (obj == objects.ui_compressor_gain_slider) + { + usb_modify_parameter(TONEX_PARAM_COMP_MAKE_UP, lv_slider_get_value(obj)); + } + else if (obj == objects.ui_eq_post_switch) + { + usb_modify_parameter(TONEX_PARAM_EQ_POST, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_eq_bass_slider) + { + usb_modify_parameter(TONEX_PARAM_EQ_BASS, ((float)lv_slider_get_value(obj))/10.0f); + } + else if (obj == objects.ui_eq_mid_slider) + { + usb_modify_parameter(TONEX_PARAM_EQ_MID, ((float)lv_slider_get_value(obj))/10.0f); + } + else if (obj == objects.ui_eq_mid_qslider) + { + usb_modify_parameter(TONEX_PARAM_EQ_MIDQ, ((float)lv_slider_get_value(obj))/10.0f); + } + else if (obj == objects.ui_eq_treble_slider) + { + usb_modify_parameter(TONEX_PARAM_EQ_TREBLE, ((float)lv_slider_get_value(obj))/10.0f); + } + else if (obj == objects.ui_reverb_enable_switch) + { + usb_modify_parameter(TONEX_PARAM_REVERB_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_reverb_post_switch) + { + usb_modify_parameter(TONEX_PARAM_REVERB_POSITION, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_reverb_model_dropdown) + { + usb_modify_parameter(TONEX_PARAM_REVERB_MODEL, lv_dropdown_get_selected(obj)); + } + else if (obj == objects.ui_reverb_mix_slider) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_reverb_model_dropdown)) + { + case TONEX_REVERB_SPRING_1: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING1_MIX, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_SPRING_2: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING2_MIX, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_SPRING_3: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING3_MIX, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_SPRING_4: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING4_MIX, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_ROOM: + { + usb_modify_parameter(TONEX_PARAM_REVERB_ROOM_MIX, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_PLATE: + { + usb_modify_parameter(TONEX_PARAM_REVERB_PLATE_MIX, lv_slider_get_value(obj)); + } break; + } + } + else if (obj == objects.ui_reverb_time_slider) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_reverb_model_dropdown)) + { + case TONEX_REVERB_SPRING_1: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING1_TIME, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_SPRING_2: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING2_TIME, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_SPRING_3: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING3_TIME, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_SPRING_4: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING4_TIME, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_ROOM: + { + usb_modify_parameter(TONEX_PARAM_REVERB_ROOM_TIME, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_PLATE: + { + usb_modify_parameter(TONEX_PARAM_REVERB_PLATE_TIME, lv_slider_get_value(obj)); + } break; + } + } + else if (obj == objects.ui_reverb_predelay_slider) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_reverb_model_dropdown)) + { + case TONEX_REVERB_SPRING_1: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING1_PREDELAY, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_SPRING_2: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING2_PREDELAY, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_SPRING_3: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING3_PREDELAY, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_SPRING_4: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING4_PREDELAY, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_ROOM: + { + usb_modify_parameter(TONEX_PARAM_REVERB_ROOM_PREDELAY, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_PLATE: + { + usb_modify_parameter(TONEX_PARAM_REVERB_PLATE_PREDELAY, lv_slider_get_value(obj)); + } break; + } + } + else if (obj == objects.ui_reverb_color_slider) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_reverb_model_dropdown)) + { + case TONEX_REVERB_SPRING_1: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING1_COLOR, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_SPRING_2: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING2_COLOR, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_SPRING_3: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING3_COLOR, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_SPRING_4: + { + usb_modify_parameter(TONEX_PARAM_REVERB_SPRING4_COLOR, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_ROOM: + { + usb_modify_parameter(TONEX_PARAM_REVERB_ROOM_COLOR, lv_slider_get_value(obj)); + } break; + + case TONEX_REVERB_PLATE: + { + usb_modify_parameter(TONEX_PARAM_REVERB_PLATE_COLOR, lv_slider_get_value(obj)); + } break; + } + } + else if (obj == objects.ui_modulation_enable_switch) + { + usb_modify_parameter(TONEX_PARAM_MODULATION_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_modulation_post_switch) + { + usb_modify_parameter(TONEX_PARAM_MODULATION_POST, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_modulation_model_dropdown) + { + usb_modify_parameter(TONEX_PARAM_MODULATION_MODEL, lv_dropdown_get_selected(obj)); + } + else if (obj == objects.ui_modulation_sync_switch) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_modulation_model_dropdown)) + { + case TONEX_MODULATION_CHORUS: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_CHORUS_SYNC, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } break; + + case TONEX_MODULATION_TREMOLO: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_TREMOLO_SYNC, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } break; + + case TONEX_MODULATION_PHASER: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_PHASER_SYNC, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } break; + + case TONEX_MODULATION_FLANGER: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_FLANGER_SYNC, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } break; + + case TONEX_MODULATION_ROTARY: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_ROTARY_SYNC, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } break; + } + } + else if (obj == objects.ui_modulation_ts_dropdown) + { + switch (lv_dropdown_get_selected(objects.ui_modulation_model_dropdown)) + { + case TONEX_MODULATION_CHORUS: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_CHORUS_TS, lv_dropdown_get_selected(obj)); + } break; + + case TONEX_MODULATION_TREMOLO: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_TREMOLO_TS, lv_dropdown_get_selected(obj)); + } break; + + case TONEX_MODULATION_PHASER: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_PHASER_TS, lv_dropdown_get_selected(obj)); + } break; + + case TONEX_MODULATION_FLANGER: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_FLANGER_TS, lv_dropdown_get_selected(obj)); + } break; + + case TONEX_MODULATION_ROTARY: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_ROTARY_TS, lv_dropdown_get_selected(obj)); + } break; + } + } + else if (obj == objects.ui_modulation_param1_slider) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_modulation_model_dropdown)) + { + case TONEX_MODULATION_CHORUS: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_CHORUS_RATE, lv_slider_get_value(obj)); + } break; + + case TONEX_MODULATION_TREMOLO: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_TREMOLO_RATE, lv_slider_get_value(obj)); + } break; + + case TONEX_MODULATION_PHASER: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_PHASER_RATE, lv_slider_get_value(obj)); + } break; + + case TONEX_MODULATION_FLANGER: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_FLANGER_RATE, lv_slider_get_value(obj)); + } break; + + case TONEX_MODULATION_ROTARY: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_ROTARY_SPEED, lv_slider_get_value(obj)); + } break; + } + } + else if (obj == objects.ui_modulation_param2_slider) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_modulation_model_dropdown)) + { + case TONEX_MODULATION_CHORUS: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_CHORUS_DEPTH, lv_slider_get_value(obj)); + } break; + + case TONEX_MODULATION_TREMOLO: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_TREMOLO_SHAPE, lv_slider_get_value(obj)); + } break; + + case TONEX_MODULATION_PHASER: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_PHASER_DEPTH, lv_slider_get_value(obj)); + } break; + + case TONEX_MODULATION_FLANGER: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_FLANGER_DEPTH, lv_slider_get_value(obj)); + } break; + + case TONEX_MODULATION_ROTARY: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_ROTARY_RADIUS, lv_slider_get_value(obj)); + } break; + } + } + else if (obj == objects.ui_modulation_param3_slider) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_modulation_model_dropdown)) + { + case TONEX_MODULATION_CHORUS: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_CHORUS_LEVEL, lv_slider_get_value(obj)); + } break; + + case TONEX_MODULATION_TREMOLO: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_TREMOLO_SPREAD, lv_slider_get_value(obj)); + } break; + + case TONEX_MODULATION_PHASER: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_PHASER_LEVEL, lv_slider_get_value(obj)); + } break; + + case TONEX_MODULATION_FLANGER: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_FLANGER_FEEDBACK, lv_slider_get_value(obj)); + } break; + + case TONEX_MODULATION_ROTARY: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_ROTARY_SPREAD, lv_slider_get_value(obj)); + } break; + } + } + else if (obj == objects.ui_modulation_param4_slider) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_modulation_model_dropdown)) + { + case TONEX_MODULATION_CHORUS: + { + // not used + } break; + + case TONEX_MODULATION_TREMOLO: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_TREMOLO_LEVEL, lv_slider_get_value(obj)); + } break; + + case TONEX_MODULATION_PHASER: + { + // not used + } break; + + case TONEX_MODULATION_FLANGER: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_FLANGER_LEVEL, lv_slider_get_value(obj)); + } break; + + case TONEX_MODULATION_ROTARY: + { + usb_modify_parameter(TONEX_PARAM_MODULATION_ROTARY_LEVEL, lv_slider_get_value(obj)); + } break; + } + } + else if (obj == objects.ui_delay_enable_switch) + { + usb_modify_parameter(TONEX_PARAM_DELAY_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_delay_post_switch) + { + usb_modify_parameter(TONEX_PARAM_DELAY_POST, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_delay_model_dropdown) + { + usb_modify_parameter(TONEX_PARAM_DELAY_MODEL, lv_dropdown_get_selected(obj)); + } + else if (obj == objects.ui_delay_sync_switch) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_delay_model_dropdown)) + { + case TONEX_DELAY_DIGITAL: + { + usb_modify_parameter(TONEX_PARAM_DELAY_DIGITAL_SYNC, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } break; + + case TONEX_DELAY_TAPE: + { + usb_modify_parameter(TONEX_PARAM_DELAY_TAPE_SYNC, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } break; + } + } + else if (obj == objects.ui_delay_ping_pong_switch) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_delay_model_dropdown)) + { + case TONEX_DELAY_DIGITAL: + { + usb_modify_parameter(TONEX_PARAM_DELAY_DIGITAL_MODE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } break; + + case TONEX_DELAY_TAPE: + { + usb_modify_parameter(TONEX_PARAM_DELAY_TAPE_MODE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } break; + } + } + else if (obj == objects.ui_delay_ts_slider) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_delay_model_dropdown)) + { + case TONEX_DELAY_DIGITAL: + { + usb_modify_parameter(TONEX_PARAM_DELAY_DIGITAL_TIME, lv_slider_get_value(obj)); + } break; + + case TONEX_DELAY_TAPE: + { + usb_modify_parameter(TONEX_PARAM_DELAY_TAPE_TIME, lv_slider_get_value(obj)); + } break; + } + } + else if (obj == objects.ui_delay_ts_dropdown) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_delay_model_dropdown)) + { + case TONEX_DELAY_DIGITAL: + { + usb_modify_parameter(TONEX_PARAM_DELAY_DIGITAL_TS, lv_dropdown_get_selected(obj)); + } break; + + case TONEX_DELAY_TAPE: + { + usb_modify_parameter(TONEX_PARAM_DELAY_TAPE_TS, lv_dropdown_get_selected(obj)); + } break; + } + } + else if (obj == objects.ui_delay_feedback_slider) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_delay_model_dropdown)) + { + case TONEX_DELAY_DIGITAL: + { + usb_modify_parameter(TONEX_PARAM_DELAY_DIGITAL_FEEDBACK, lv_slider_get_value(obj)); + } break; + + case TONEX_DELAY_TAPE: + { + usb_modify_parameter(TONEX_PARAM_DELAY_TAPE_FEEDBACK, lv_slider_get_value(obj)); + } break; + } + } + else if (obj == objects.ui_delay_mix_slider) + { + // check which model is set + switch (lv_dropdown_get_selected(objects.ui_delay_model_dropdown)) + { + case TONEX_DELAY_DIGITAL: + { + usb_modify_parameter(TONEX_PARAM_DELAY_DIGITAL_MIX, lv_slider_get_value(obj)); + } break; + + case TONEX_DELAY_TAPE: + { + usb_modify_parameter(TONEX_PARAM_DELAY_TAPE_MIX, lv_slider_get_value(obj)); + } break; + } + } + else if (obj == objects.ui_amp_enable_switch) + { + usb_modify_parameter(TONEX_PARAM_MODEL_AMP_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_cabinet_model_dropdown) + { + usb_modify_parameter(TONEX_PARAM_CABINET_TYPE, lv_dropdown_get_selected(obj)); + } + else if (obj == objects.ui_amplifier_gain_slider) + { + usb_modify_parameter(TONEX_PARAM_MODEL_GAIN, ((float)lv_slider_get_value(obj))/10.0f); + } + else if (obj == objects.ui_amplifier_volume_slider) + { + usb_modify_parameter(TONEX_PARAM_MODEL_VOLUME, ((float)lv_slider_get_value(obj))/10.0f); + } + else if (obj == objects.ui_amplifier_presense_slider) + { + usb_modify_parameter(TONEX_PARAM_MODEL_PRESENCE, ((float)lv_slider_get_value(obj))/10.0f); + } + else if (obj == objects.ui_amplifier_depth_slider) + { + usb_modify_parameter(TONEX_PARAM_MODEL_DEPTH, ((float)lv_slider_get_value(obj))/10.0f); + } + else if (obj == objects.ui_bpm_slider) + { + usb_modify_parameter(TONEX_GLOBAL_BPM, lv_slider_get_value(obj)); + } + else if (obj == objects.ui_input_trim_slider) + { + usb_modify_parameter(TONEX_GLOBAL_INPUT_TRIM, lv_slider_get_value(obj)); + } + else if (obj == objects.ui_cab_bypass_switch) + { + usb_modify_parameter(TONEX_GLOBAL_CABSIM_BYPASS, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_tempo_source_switch) + { + usb_modify_parameter(TONEX_GLOBAL_TEMPO_SOURCE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_tuning_reference_slider) + { + usb_modify_parameter(TONEX_GLOBAL_TUNING_REFERENCE, lv_slider_get_value(obj)); + } + else if (obj == objects.ui_volume_slider) + { + usb_modify_parameter(TONEX_GLOBAL_MASTER_VOLUME, lv_slider_get_value(obj)); + } + else + { + ESP_LOGW(TAG, "Unknown Parameter changed"); + } +#endif // CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +void tonex_update_icon_order(void) +{ +#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI + bool gatePost = lv_obj_has_state(objects.ui_noise_gate_post_switch, LV_STATE_CHECKED); + bool compPost = lv_obj_has_state(objects.ui_compressor_post_switch, LV_STATE_CHECKED); + bool eqPost = lv_obj_has_state(objects.ui_eq_post_switch, LV_STATE_CHECKED); + bool modPost = lv_obj_has_state(objects.ui_modulation_post_switch, LV_STATE_CHECKED); + bool delayPost = lv_obj_has_state(objects.ui_delay_post_switch, LV_STATE_CHECKED); + bool revPost = lv_obj_has_state(objects.ui_reverb_post_switch, LV_STATE_CHECKED); + + lv_obj_t *icons[8]; + uint8_t index = 0; + + if (!gatePost) + { + icons[index++] = objects.ui_icon_gate; + } + if (!compPost) + { + icons[index++] = objects.ui_icon_comp; + } + if (!modPost) + { + icons[index++] = objects.ui_icon_mod; + } + if (!delayPost) + { + icons[index++] = objects.ui_icon_delay; + } + if (!eqPost) + { + icons[index++] = objects.ui_icon_eq; + } + icons[index++] = objects.ui_icon_amp; + icons[index++] = objects.ui_icon_cab; + if (eqPost) + { + icons[index++] = objects.ui_icon_eq; + } + if (gatePost) + { + icons[index++] = objects.ui_icon_gate; + } + if (compPost) + { + icons[index++] = objects.ui_icon_comp; + } + if (!revPost) + { + icons[index++] = objects.ui_icon_reverb; + } + if (modPost) + { + icons[index++] = objects.ui_icon_mod; + } + if (delayPost) + { + icons[index++] = objects.ui_icon_delay; + } + if (revPost) + { + icons[index] = objects.ui_icon_reverb; + } + + // get the icon coords for this platform + int16_t offsets[8]; + platform_get_icon_coords(offsets, sizeof(offsets) / sizeof(int16_t)); + + for (uint8_t i = 0; i<8; i++) + { + lv_obj_t *icon = icons[i]; + int16_t offset = offsets[i]; + lv_obj_set_x(icon, offset); + } +#endif +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +uint8_t tonex_update_ui_parameters(void) +{ + tModellerParameter* param_ptr; + __attribute__((unused)) char value_string[20]; + +#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI + + for (uint16_t param = 0; param < TONEX_GLOBAL_LAST; param++) + { + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + tModellerParameter* param_entry = ¶m_ptr[param]; + + // debug + //ESP_LOGI(TAG, "Param %d: val: %02f, min: %02f, max: %02f", param, param_entry->Value, param_entry->Min, param_entry->Max); + + switch (param) + { + case TONEX_PARAM_NOISE_GATE_POST: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_noise_gate_post_switch, LV_STATE_CHECKED); + } + else + { + lv_obj_clear_state(objects.ui_noise_gate_post_switch, LV_STATE_CHECKED); + } + tonex_update_icon_order(); + } break; + + case TONEX_PARAM_NOISE_GATE_ENABLE: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_noise_gate_switch, LV_STATE_CHECKED); + lv_img_set_src(objects.ui_icon_gate, (lv_obj_t*)&img_effect_icon_gate_on); + } + else + { + lv_obj_clear_state(objects.ui_noise_gate_switch, LV_STATE_CHECKED); + lv_img_set_src(objects.ui_icon_gate, (lv_obj_t*)&img_effect_icon_gate_off); + } + } break; + + case TONEX_PARAM_NOISE_GATE_THRESHOLD: + { + lv_slider_set_range(objects.ui_noise_gate_threshold_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_noise_gate_threshold_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d db", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_noise_gate_threshold_value, value_string); + } break; + + case TONEX_PARAM_NOISE_GATE_RELEASE: + { + lv_slider_set_range(objects.ui_noise_gate_release_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_noise_gate_release_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d ms", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_noise_gate_release_value, value_string); + } break; + + case TONEX_PARAM_NOISE_GATE_DEPTH: + { + lv_slider_set_range(objects.ui_noise_gate_depth_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_noise_gate_depth_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d db", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_noise_gate_depth_value, value_string); + } break; + + case TONEX_PARAM_COMP_POST: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_compressor_post_switch, LV_STATE_CHECKED); + } + else + { + lv_obj_clear_state(objects.ui_compressor_post_switch, LV_STATE_CHECKED); + } + tonex_update_icon_order(); + } break; + + case TONEX_PARAM_COMP_ENABLE: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_compressor_enable_switch, LV_STATE_CHECKED); + lv_img_set_src(objects.ui_icon_comp, (lv_obj_t*)&img_effect_icon_comp_on); + } + else + { + lv_obj_clear_state(objects.ui_compressor_enable_switch, LV_STATE_CHECKED); + lv_img_set_src(objects.ui_icon_comp, (lv_obj_t*)&img_effect_icon_comp_off); + } + } break; + + case TONEX_PARAM_COMP_THRESHOLD: + { + lv_slider_set_range(objects.ui_compressor_threshold_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_compressor_threshold_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f db", param_entry->Value); + lv_label_set_text(objects.ui_compressor_threshold_value, value_string); + } break; + + case TONEX_PARAM_COMP_MAKE_UP: + { + lv_slider_set_range(objects.ui_compressor_gain_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_compressor_gain_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d db", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_compressor_gain_value, value_string); + } break; + + case TONEX_PARAM_COMP_ATTACK: + { + lv_slider_set_range(objects.ui_compressor_attack_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_compressor_attack_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d ms", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_compressor_attack_value, value_string); + } break; + + case TONEX_PARAM_EQ_POST: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_eq_post_switch, LV_STATE_CHECKED); + } + else + { + lv_obj_clear_state(objects.ui_eq_post_switch, LV_STATE_CHECKED); + } + tonex_update_icon_order(); + } break; + + case TONEX_PARAM_EQ_BASS: + { + lv_slider_set_range(objects.ui_eq_bass_slider, round(param_entry->Min), round(param_entry->Max * 10.0f)); + lv_slider_set_value(objects.ui_eq_bass_slider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_eq_bass_value, value_string); + } break; + + case TONEX_PARAM_EQ_BASS_FREQ: + { + // not exposed via UI + } break; + + case TONEX_PARAM_EQ_MID: + { + lv_slider_set_range(objects.ui_eq_mid_slider, round(param_entry->Min), round(param_entry->Max * 10.0f)); + lv_slider_set_value(objects.ui_eq_mid_slider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_eq_mid_value, value_string); + } break; + + case TONEX_PARAM_EQ_MIDQ: + { + lv_slider_set_range(objects.ui_eq_mid_qslider, round(param_entry->Min * 10.0f), round(param_entry->Max * 10.0f)); + lv_slider_set_value(objects.ui_eq_mid_qslider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_eq_mid_qvalue, value_string); + } break; + + case TONEX_PARAM_EQ_MID_FREQ: + { + // not exposed via UI + } break; + + case TONEX_PARAM_EQ_TREBLE: + { + lv_slider_set_range(objects.ui_eq_treble_slider, round(param_entry->Min), round(param_entry->Max * 10.0f)); + lv_slider_set_value(objects.ui_eq_treble_slider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_eq_treble_value, value_string); + } break; + + case TONEX_PARAM_EQ_TREBLE_FREQ: + { + // not exposed via UI + } break; + + case TONEX_PARAM_MODEL_AMP_ENABLE: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_amp_enable_switch, LV_STATE_CHECKED); + lv_img_set_src(objects.ui_icon_amp, (lv_obj_t*)&img_effect_icon_amp_on); + } + else + { + lv_obj_clear_state(objects.ui_amp_enable_switch, LV_STATE_CHECKED); + lv_img_set_src(objects.ui_icon_amp, (lv_obj_t*)&img_effect_icon_amp_off); + } + } break; + + case TONEX_PARAM_MODEL_SW1: + { + // not exposed via UI + } break; + + case TONEX_PARAM_CABINET_TYPE: + { + lv_dropdown_set_selected(objects.ui_cabinet_model_dropdown, param_entry->Value); + + if (param_entry->Value == TONEX_CABINET_DISABLED) + { + lv_img_set_src(objects.ui_icon_cab, (lv_obj_t*)&img_effect_icon_cab_off); + } + else + { + lv_img_set_src(objects.ui_icon_cab, (lv_obj_t*)&img_effect_icon_cab_on); + } + } break; + + case TONEX_PARAM_MODEL_GAIN: + { + lv_slider_set_range(objects.ui_amplifier_gain_slider, round(param_entry->Min), round(param_entry->Max * 10.0f)); + lv_slider_set_value(objects.ui_amplifier_gain_slider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_amplifier_gain_value, value_string); + } break; + + case TONEX_PARAM_MODEL_VOLUME: + { + lv_slider_set_range(objects.ui_amplifier_volume_slider, round(param_entry->Min), round(param_entry->Max * 10.0f)); + lv_slider_set_value(objects.ui_amplifier_volume_slider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_amplifier_volume_value, value_string); + } break; + + case TONEX_PARAM_MODEX_MIX: + { + // not exposed via UI + } break; + + case TONEX_PARAM_MODEL_PRESENCE: + { + lv_slider_set_range(objects.ui_amplifier_presense_slider, round(param_entry->Min), round(param_entry->Max * 10.0f)); + lv_slider_set_value(objects.ui_amplifier_presense_slider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_amplifier_presense_value, value_string); + } break; + + //case TONEX_PARAM_CABINET_UNKNOWN: + //{ + // not exposed via UI + //} break; + + //case TONEX_PARAM_VIR_CABINET: + //{ + // not exposed via UI + //} break; + + case TONEX_PARAM_MODEL_DEPTH: + { + lv_slider_set_range(objects.ui_amplifier_depth_slider, round(param_entry->Min), round(param_entry->Max * 10.0f)); + lv_slider_set_value(objects.ui_amplifier_depth_slider, round(param_entry->Value * 10.0f), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_amplifier_depth_value, value_string); + } break; + + case TONEX_PARAM_VIR_RESO: + { + // not exposed via UI + } break; + + case TONEX_PARAM_VIR_MIC_1: + { + // not exposed via UI + } break; + + case TONEX_PARAM_VIR_MIC_1_X: + { + // not exposed via UI + } break; + + case TONEX_PARAM_VIR_MIC_1_Z: + { + // not exposed via UI + } break; + + case TONEX_PARAM_VIR_MIC_2: + { + // not exposed via UI + } break; + + case TONEX_PARAM_VIR_MIC_2_X: + { + // not exposed via UI + } break; + + case TONEX_PARAM_VIR_MIC_2_Z: + { + // not exposed via UI + } break; + + case TONEX_PARAM_VIR_BLEND: + { + // not exposed via UI + } break; + + case TONEX_PARAM_REVERB_POSITION: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_reverb_post_switch, LV_STATE_CHECKED); + } + else + { + lv_obj_clear_state(objects.ui_reverb_post_switch, LV_STATE_CHECKED); + } + tonex_update_icon_order(); + } break; + + case TONEX_PARAM_REVERB_ENABLE: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_reverb_enable_switch, LV_STATE_CHECKED); + + // show enabled icon with letter to indicate the type + switch ((int)param_ptr[TONEX_PARAM_REVERB_MODEL].Value) + { + case TONEX_REVERB_SPRING_1: + { + lv_img_set_src(objects.ui_icon_reverb, (lv_obj_t*)&img_effect_icon_reverb_on_s1); + } break; + + case TONEX_REVERB_SPRING_2: + { + lv_img_set_src(objects.ui_icon_reverb, (lv_obj_t*)&img_effect_icon_reverb_on_s2); + } break; + + case TONEX_REVERB_SPRING_3: + { + lv_img_set_src(objects.ui_icon_reverb, (lv_obj_t*)&img_effect_icon_reverb_on_s3); + } break; + + case TONEX_REVERB_SPRING_4: + { + lv_img_set_src(objects.ui_icon_reverb, (lv_obj_t*)&img_effect_icon_reverb_on_s4); + } break; + + case TONEX_REVERB_ROOM: + { + lv_img_set_src(objects.ui_icon_reverb, (lv_obj_t*)&img_effect_icon_reverb_on_r); + } break; + + case TONEX_REVERB_PLATE: + default: + { + lv_img_set_src(objects.ui_icon_reverb, (lv_obj_t*)&img_effect_icon_reverb_on_p); + } break; + } + } + else + { + lv_obj_clear_state(objects.ui_reverb_enable_switch, LV_STATE_CHECKED); + lv_img_set_src(objects.ui_icon_reverb, (lv_obj_t*)&img_effect_icon_reverb_off); + } + } break; + + case TONEX_PARAM_REVERB_MODEL: + { + lv_dropdown_set_selected(objects.ui_reverb_model_dropdown, param_entry->Value); + } break; + + case TONEX_PARAM_REVERB_SPRING1_TIME: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_1) + { + lv_slider_set_range(objects.ui_reverb_time_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_time_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_reverb_time_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING1_PREDELAY: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_1) + { + lv_slider_set_range(objects.ui_reverb_predelay_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_predelay_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d ms", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_predelay_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING1_COLOR: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_1) + { + lv_slider_set_range(objects.ui_reverb_color_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_color_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_color_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING1_MIX: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_1) + { + lv_slider_set_range(objects.ui_reverb_mix_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_mix_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_mix_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING2_TIME: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_2) + { + lv_slider_set_range(objects.ui_reverb_time_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_time_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_reverb_time_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING2_PREDELAY: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_2) + { + lv_slider_set_range(objects.ui_reverb_predelay_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_predelay_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d ms", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_predelay_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING2_COLOR: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_2) + { + lv_slider_set_range(objects.ui_reverb_color_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_color_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_color_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING2_MIX: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_2) + { + lv_slider_set_range(objects.ui_reverb_mix_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_mix_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_mix_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING3_TIME: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_3) + { + lv_slider_set_range(objects.ui_reverb_time_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_time_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_reverb_time_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING3_PREDELAY: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_3) + { + lv_slider_set_range(objects.ui_reverb_predelay_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_predelay_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d ms", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_predelay_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING3_COLOR: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_3) + { + lv_slider_set_range(objects.ui_reverb_color_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_color_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_color_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING3_MIX: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_3) + { + lv_slider_set_range(objects.ui_reverb_mix_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_mix_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_mix_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING4_TIME: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_4) + { + lv_slider_set_range(objects.ui_reverb_time_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_time_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_reverb_time_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING4_PREDELAY: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_4) + { + lv_slider_set_range(objects.ui_reverb_predelay_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_predelay_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d ms", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_predelay_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING4_COLOR: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_4) + { + lv_slider_set_range(objects.ui_reverb_color_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_color_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_color_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_SPRING4_MIX: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_SPRING_4) + { + lv_slider_set_range(objects.ui_reverb_mix_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_mix_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_mix_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_ROOM_TIME: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_ROOM) + { + lv_slider_set_range(objects.ui_reverb_time_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_time_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_reverb_time_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_ROOM_PREDELAY: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_ROOM) + { + lv_slider_set_range(objects.ui_reverb_predelay_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_predelay_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d ms", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_predelay_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_ROOM_COLOR: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_ROOM) + { + lv_slider_set_range(objects.ui_reverb_color_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_color_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_color_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_ROOM_MIX: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_ROOM) + { + lv_slider_set_range(objects.ui_reverb_mix_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_mix_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_mix_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_PLATE_TIME: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_PLATE) + { + lv_slider_set_range(objects.ui_reverb_time_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_time_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_reverb_time_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_PLATE_PREDELAY: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_PLATE) + { + lv_slider_set_range(objects.ui_reverb_predelay_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_predelay_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d ms", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_predelay_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_PLATE_COLOR: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_PLATE) + { + lv_slider_set_range(objects.ui_reverb_color_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_color_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_color_value, value_string); + } + } break; + + case TONEX_PARAM_REVERB_PLATE_MIX: + { + if (param_ptr[TONEX_PARAM_REVERB_MODEL].Value == TONEX_REVERB_PLATE) + { + lv_slider_set_range(objects.ui_reverb_mix_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_reverb_mix_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_reverb_mix_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_POST: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_modulation_post_switch, LV_STATE_CHECKED); + } + else + { + lv_obj_clear_state(objects.ui_modulation_post_switch, LV_STATE_CHECKED); + } + tonex_update_icon_order(); + } break; + + case TONEX_PARAM_MODULATION_ENABLE: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_modulation_enable_switch, LV_STATE_CHECKED); + + // show enabled icon with letter to indicate the type + switch ((int)param_ptr[TONEX_PARAM_MODULATION_MODEL].Value) + { + case TONEX_MODULATION_CHORUS: + { + lv_img_set_src(objects.ui_icon_mod, (lv_obj_t*)&img_effect_icon_mod_on_chorus); + } break; + + case TONEX_MODULATION_TREMOLO: + { + lv_img_set_src(objects.ui_icon_mod, (lv_obj_t*)&img_effect_icon_mod_on_tremolo); + } break; + + case TONEX_MODULATION_PHASER: + { + lv_img_set_src(objects.ui_icon_mod, (lv_obj_t*)&img_effect_icon_mod_on_phaser); + } break; + + case TONEX_MODULATION_FLANGER: + { + lv_img_set_src(objects.ui_icon_mod, (lv_obj_t*)&img_effect_icon_mod_on_flanger); + } break; + + case TONEX_MODULATION_ROTARY: + default: + { + lv_img_set_src(objects.ui_icon_mod, (lv_obj_t*)&img_effect_icon_mod_on_rotary); + } break; + } + } + else + { + lv_obj_clear_state(objects.ui_modulation_enable_switch, LV_STATE_CHECKED); + lv_img_set_src(objects.ui_icon_mod, (lv_obj_t*)&img_effect_icon_mod_off); + } + } break; + + case TONEX_PARAM_MODULATION_MODEL: + { + lv_dropdown_set_selected(objects.ui_modulation_model_dropdown, param_entry->Value); + + // configure the variable UI items + switch ((int)param_entry->Value) + { + case TONEX_MODULATION_CHORUS: + { + lv_label_set_text(objects.ui_modulation_param1_label, "Rate"); + lv_label_set_text(objects.ui_modulation_param2_label, "Depth"); + lv_label_set_text(objects.ui_modulation_param3_label, "Level"); + lv_obj_add_flag(objects.ui_modulation_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_modulation_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_modulation_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case TONEX_MODULATION_TREMOLO: + { + lv_label_set_text(objects.ui_modulation_param1_label, "Rate"); + lv_label_set_text(objects.ui_modulation_param2_label, "Shape"); + lv_label_set_text(objects.ui_modulation_param3_label, "Spread"); + lv_label_set_text(objects.ui_modulation_param4_label, "Level"); + lv_obj_clear_flag(objects.ui_modulation_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case TONEX_MODULATION_PHASER: + { + lv_label_set_text(objects.ui_modulation_param1_label, "Rate"); + lv_label_set_text(objects.ui_modulation_param2_label, "Depth"); + lv_label_set_text(objects.ui_modulation_param3_label, "Level"); + lv_obj_add_flag(objects.ui_modulation_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_modulation_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_modulation_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case TONEX_MODULATION_FLANGER: + { + lv_label_set_text(objects.ui_modulation_param1_label, "Rate"); + lv_label_set_text(objects.ui_modulation_param2_label, "Depth"); + lv_label_set_text(objects.ui_modulation_param3_label, "Feedback"); + lv_label_set_text(objects.ui_modulation_param4_label, "Level"); + lv_obj_clear_flag(objects.ui_modulation_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case TONEX_MODULATION_ROTARY: + { + lv_label_set_text(objects.ui_modulation_param1_label, "Speed"); + lv_label_set_text(objects.ui_modulation_param2_label, "Radius"); + lv_label_set_text(objects.ui_modulation_param3_label, "Spread"); + lv_label_set_text(objects.ui_modulation_param4_label, "Level"); + lv_obj_clear_flag(objects.ui_modulation_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + default: + { + ESP_LOGW(TAG, "Unknown modulation model: %d", (int)param_entry->Value); + } break; + } + } break; + + case TONEX_PARAM_MODULATION_CHORUS_SYNC: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_CHORUS) + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); + lv_obj_add_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); + } + else + { + lv_obj_clear_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); + lv_obj_clear_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); + } + } + } break; + + case TONEX_PARAM_MODULATION_CHORUS_TS: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_CHORUS) + { + lv_dropdown_set_selected(objects.ui_modulation_ts_dropdown, param_entry->Value); + } + } break; + + case TONEX_PARAM_MODULATION_CHORUS_RATE: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_CHORUS) + { + lv_slider_set_range(objects.ui_modulation_param1_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f Hz", param_entry->Value); + lv_label_set_text(objects.ui_modulation_param1_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_CHORUS_DEPTH: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_CHORUS) + { + lv_slider_set_range(objects.ui_modulation_param2_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_modulation_param2_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_CHORUS_LEVEL: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_CHORUS) + { + lv_slider_set_range(objects.ui_modulation_param3_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_modulation_param3_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_TREMOLO_SYNC: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_TREMOLO) + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); + lv_obj_add_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); + } + else + { + lv_obj_clear_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); + lv_obj_clear_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); + } + } + } break; + + case TONEX_PARAM_MODULATION_TREMOLO_TS: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_TREMOLO) + { + lv_dropdown_set_selected(objects.ui_modulation_ts_dropdown, param_entry->Value); + } + } break; + + case TONEX_PARAM_MODULATION_TREMOLO_RATE: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_TREMOLO) + { + lv_slider_set_range(objects.ui_modulation_param1_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f Hz", param_entry->Value); + lv_label_set_text(objects.ui_modulation_param1_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_TREMOLO_SHAPE: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_TREMOLO) + { + lv_slider_set_range(objects.ui_modulation_param2_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_modulation_param2_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_TREMOLO_SPREAD: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_TREMOLO) + { + lv_slider_set_range(objects.ui_modulation_param3_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_modulation_param3_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_TREMOLO_LEVEL: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_TREMOLO) + { + lv_slider_set_range(objects.ui_modulation_param4_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param4_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_modulation_param4_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_PHASER_SYNC: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_PHASER) + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); + lv_obj_add_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); + } + else + { + lv_obj_clear_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); + lv_obj_clear_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); + } + } + } break; + + case TONEX_PARAM_MODULATION_PHASER_TS: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_PHASER) + { + lv_dropdown_set_selected(objects.ui_modulation_ts_dropdown, param_entry->Value); + } + } break; + + case TONEX_PARAM_MODULATION_PHASER_RATE: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_PHASER) + { + lv_slider_set_range(objects.ui_modulation_param1_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f Hz", param_entry->Value); + lv_label_set_text(objects.ui_modulation_param1_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_PHASER_DEPTH: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_PHASER) + { + lv_slider_set_range(objects.ui_modulation_param2_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_modulation_param2_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_PHASER_LEVEL: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_PHASER) + { + lv_slider_set_range(objects.ui_modulation_param3_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_modulation_param3_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_FLANGER_SYNC: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_FLANGER) + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); + lv_obj_add_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); + } + else + { + lv_obj_clear_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); + lv_obj_clear_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); + } + } + } break; + + case TONEX_PARAM_MODULATION_FLANGER_TS: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_FLANGER) + { + lv_dropdown_set_selected(objects.ui_modulation_ts_dropdown, param_entry->Value); + } + } break; + + case TONEX_PARAM_MODULATION_FLANGER_RATE: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_FLANGER) + { + lv_slider_set_range(objects.ui_modulation_param1_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f Hz", param_entry->Value); + lv_label_set_text(objects.ui_modulation_param1_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_FLANGER_DEPTH: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_FLANGER) + { + lv_slider_set_range(objects.ui_modulation_param2_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_modulation_param2_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_FLANGER_FEEDBACK: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_FLANGER) + { + lv_slider_set_range(objects.ui_modulation_param3_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_modulation_param3_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_FLANGER_LEVEL: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_FLANGER) + { + lv_slider_set_range(objects.ui_modulation_param4_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param4_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_modulation_param4_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_ROTARY_SYNC: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_ROTARY) + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); + lv_obj_add_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); + } + else + { + lv_obj_clear_state(objects.ui_modulation_sync_switch, LV_STATE_CHECKED); + lv_obj_clear_flag(objects.ui_modulation_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_modulation_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_modulation_ts_dropdown, LV_OBJ_FLAG_HIDDEN); + } + } + } break; + + case TONEX_PARAM_MODULATION_ROTARY_TS: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_ROTARY) + { + lv_dropdown_set_selected(objects.ui_modulation_ts_dropdown, param_entry->Value); + } + } break; + + case TONEX_PARAM_MODULATION_ROTARY_SPEED: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_ROTARY) + { + lv_slider_set_range(objects.ui_modulation_param1_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d RPM", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_modulation_param1_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_ROTARY_RADIUS: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_ROTARY) + { + lv_slider_set_range(objects.ui_modulation_param2_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d mm", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_modulation_param2_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_ROTARY_SPREAD: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_ROTARY) + { + lv_slider_set_range(objects.ui_modulation_param3_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_modulation_param3_value, value_string); + } + } break; + + case TONEX_PARAM_MODULATION_ROTARY_LEVEL: + { + if (param_ptr[TONEX_PARAM_MODULATION_MODEL].Value == TONEX_MODULATION_ROTARY) + { + lv_slider_set_range(objects.ui_modulation_param4_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_modulation_param4_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_modulation_param4_value, value_string); + } + } break; + + case TONEX_PARAM_DELAY_POST: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_delay_post_switch, LV_STATE_CHECKED); + } + else + { + lv_obj_clear_state(objects.ui_delay_post_switch, LV_STATE_CHECKED); + } + tonex_update_icon_order(); + } break; + + case TONEX_PARAM_DELAY_ENABLE: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_delay_enable_switch, LV_STATE_CHECKED); + + // show enabled icon with letter to indicate the type + switch ((int)param_ptr[TONEX_PARAM_DELAY_MODEL].Value) + { + case TONEX_DELAY_DIGITAL: + { + lv_img_set_src(objects.ui_icon_delay, (lv_obj_t*)&img_effect_icon_delay_on_d); + } break; + + case TONEX_DELAY_TAPE: + default: + { + lv_img_set_src(objects.ui_icon_delay, (lv_obj_t*)&img_effect_icon_delay_on_t); + } break; + } + } + else + { + lv_obj_clear_state(objects.ui_delay_enable_switch, LV_STATE_CHECKED); + lv_img_set_src(objects.ui_icon_delay, (lv_obj_t*)&img_effect_icon_delay_off); + } + } break; + + case TONEX_PARAM_DELAY_MODEL: + { + lv_dropdown_set_selected(objects.ui_delay_model_dropdown, param_entry->Value); + } break; + + case TONEX_PARAM_DELAY_DIGITAL_SYNC: + { + if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_DIGITAL) + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_delay_sync_switch, LV_STATE_CHECKED); + lv_obj_add_flag(objects.ui_delay_ts_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_delay_ts_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_delay_ts_dropdown, LV_OBJ_FLAG_HIDDEN); + } + else + { + lv_obj_clear_state(objects.ui_delay_sync_switch, LV_STATE_CHECKED); + lv_obj_clear_flag(objects.ui_delay_ts_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_delay_ts_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_delay_ts_dropdown, LV_OBJ_FLAG_HIDDEN); + } + } + } break; + + case TONEX_PARAM_DELAY_DIGITAL_TS: + { + if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_DIGITAL) + { + lv_dropdown_set_selected(objects.ui_delay_ts_dropdown, param_entry->Value); + } + } break; + + case TONEX_PARAM_DELAY_DIGITAL_TIME: + { + if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_DIGITAL) + { + lv_slider_set_range(objects.ui_delay_ts_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_delay_ts_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d ms", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_delay_ts_value, value_string); + } + } break; + + case TONEX_PARAM_DELAY_DIGITAL_FEEDBACK: + { + if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_DIGITAL) + { + lv_slider_set_range(objects.ui_delay_feedback_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_delay_feedback_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_delay_feedback_value, value_string); + } + } break; + + case TONEX_PARAM_DELAY_DIGITAL_MODE: + { + if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_DIGITAL) + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_delay_ping_pong_switch, LV_STATE_CHECKED); + } + else + { + lv_obj_clear_state(objects.ui_delay_ping_pong_switch, LV_STATE_CHECKED); + } + } + } break; + + case TONEX_PARAM_DELAY_DIGITAL_MIX: + { + if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_DIGITAL) + { + lv_slider_set_range(objects.ui_delay_mix_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_delay_mix_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_delay_mix_value, value_string); + } + } break; + + case TONEX_PARAM_DELAY_TAPE_SYNC: + { + if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_TAPE) + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_delay_sync_switch, LV_STATE_CHECKED); + lv_obj_add_flag(objects.ui_delay_ts_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_delay_ts_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_delay_ts_dropdown, LV_OBJ_FLAG_HIDDEN); + } + else + { + lv_obj_clear_state(objects.ui_delay_sync_switch, LV_STATE_CHECKED); + lv_obj_clear_flag(objects.ui_delay_ts_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_delay_ts_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_delay_ts_dropdown, LV_OBJ_FLAG_HIDDEN); + } + } + } break; + + case TONEX_PARAM_DELAY_TAPE_TS: + { + if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_TAPE) + { + lv_dropdown_set_selected(objects.ui_delay_ts_dropdown, param_entry->Value); + } + } break; + + case TONEX_PARAM_DELAY_TAPE_TIME: + { + if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_TAPE) + { + lv_slider_set_range(objects.ui_delay_ts_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_delay_ts_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d ms", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_delay_ts_value, value_string); + } + } break; + + case TONEX_PARAM_DELAY_TAPE_FEEDBACK: + { + if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_TAPE) + { + lv_slider_set_range(objects.ui_delay_feedback_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_delay_feedback_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_delay_feedback_value, value_string); + } + } break; + + case TONEX_PARAM_DELAY_TAPE_MODE: + { + if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_TAPE) + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_delay_ping_pong_switch, LV_STATE_CHECKED); + } + else + { + lv_obj_clear_state(objects.ui_delay_ping_pong_switch, LV_STATE_CHECKED); + } + } + } break; + + case TONEX_PARAM_DELAY_TAPE_MIX: + { + if (param_ptr[TONEX_PARAM_DELAY_MODEL].Value == TONEX_DELAY_TAPE) + { + lv_slider_set_range(objects.ui_delay_mix_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_delay_mix_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d%%", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_delay_mix_value, value_string); + } + } break; + + case TONEX_GLOBAL_CABSIM_BYPASS: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_cab_bypass_switch, LV_STATE_CHECKED); + } + else + { + lv_obj_clear_state(objects.ui_cab_bypass_switch, LV_STATE_CHECKED); + } + } break; + + case TONEX_GLOBAL_TEMPO_SOURCE: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_tempo_source_switch, LV_STATE_CHECKED); + } + else + { + lv_obj_clear_state(objects.ui_tempo_source_switch, LV_STATE_CHECKED); + } + } break; + + case TONEX_GLOBAL_BPM: + { + lv_slider_set_range(objects.ui_bpm_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_bpm_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f", param_entry->Value); + lv_label_set_text(objects.ui_bpm_value, value_string); + + char buf[128]; + sprintf(buf, "%.1f", param_entry->Value); + lv_label_set_text(objects.ui_bpm_value_label, buf); + +#if CONFIG_TONEX_CONTROLLER_SHOW_BPM_INDICATOR + ui_BPMAnimate(objects.ui_bpm_indicator, 1000 * 60 / param_entry->Value); +#endif + } break; + + case TONEX_GLOBAL_INPUT_TRIM: + { + lv_slider_set_range(objects.ui_input_trim_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_input_trim_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f db", param_entry->Value); + lv_label_set_text(objects.ui_input_trim_value, value_string); + } break; + + case TONEX_GLOBAL_TUNING_REFERENCE: + { + lv_slider_set_range(objects.ui_tuning_reference_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_tuning_reference_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%d Hz", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_tuning_reference_value, value_string); + } break; + + case TONEX_GLOBAL_MASTER_VOLUME: + { + lv_slider_set_range(objects.ui_volume_slider, round(param_entry->Min), round(param_entry->Max)); + lv_slider_set_value(objects.ui_volume_slider, round(param_entry->Value), LV_ANIM_OFF); + + // show value and units + sprintf(value_string, "%1.1f db", param_entry->Value); + lv_label_set_text(objects.ui_volume_value, value_string); + } break; + } + + tonex_params_release_locked_access(); + } + } +#endif + +#if CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_169 \ + || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_169TOUCH \ + || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_M5ATOMS3R \ + || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_LILYGO_TDISPLAY_S3 \ + || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_19TOUCH + + for (uint16_t param = 0; param < TONEX_GLOBAL_LAST; param++) + { + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + tModellerParameter* param_entry = ¶m_ptr[param]; + + // debug + //ESP_LOGI(TAG, "Param %d: val: %02f, min: %02f, max: %02f", param, param_entry->Value, param_entry->Min, param_entry->Max); + + switch (param) + { + case TONEX_GLOBAL_BPM: + { + char buf[128]; + sprintf(buf, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_bpm, buf); + } break; + + case TONEX_PARAM_COMP_ENABLE: + { + if (param_entry->Value) + { + lv_obj_set_style_border_color(objects.ui_cstatus, lv_color_hex(0xDDDD00), LV_PART_MAIN | LV_STATE_DEFAULT); + } + else + { + lv_obj_set_style_border_color(objects.ui_cstatus, lv_color_hex(0x563F2A), LV_PART_MAIN | LV_STATE_DEFAULT); + } + } break; + + case TONEX_PARAM_MODULATION_ENABLE: + { + if (param_entry->Value) + { + lv_obj_set_style_border_color(objects.ui_mstatus, lv_color_hex(0xEEAA00), LV_PART_MAIN | LV_STATE_DEFAULT); + } + else + { + lv_obj_set_style_border_color(objects.ui_mstatus, lv_color_hex(0x563F2A), LV_PART_MAIN | LV_STATE_DEFAULT); + } + } break; + + case TONEX_PARAM_DELAY_ENABLE: + { + if (param_entry->Value) + { + lv_obj_set_style_border_color(objects.ui_dstatus, lv_color_hex(0x00CC00), LV_PART_MAIN | LV_STATE_DEFAULT); + } + else + { + lv_obj_set_style_border_color(objects.ui_dstatus, lv_color_hex(0x563F2A), LV_PART_MAIN | LV_STATE_DEFAULT); + } + } break; + + case TONEX_PARAM_REVERB_ENABLE: + { + if (param_entry->Value) + { + lv_obj_set_style_border_color(objects.ui_rstatus, lv_color_hex(0x33FFFF), LV_PART_MAIN | LV_STATE_DEFAULT); + } + else + { + lv_obj_set_style_border_color(objects.ui_rstatus, lv_color_hex(0x563F2A), LV_PART_MAIN | LV_STATE_DEFAULT); + } + } break; + + } + + tonex_params_release_locked_access(); + } + } +#endif + + return 1; +} diff --git a/source/main/display_tonex.h b/source/main/display_tonex.h new file mode 100644 index 00000000..bc7c8ee7 --- /dev/null +++ b/source/main/display_tonex.h @@ -0,0 +1,37 @@ +/* + Copyright (C) 2024 Greg Smith + +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 _DISPLAY_TONEX_H +#define _DISPLAY_TONEX_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "lvgl.h" + +void tonex_show_settings_tab(lv_event_t* e); +void tonex_action_effect_icon_clicked(lv_event_t* e); +void tonex_action_parameter_changed(lv_event_t* e); +void tonex_update_icon_order(void); +uint8_t tonex_update_ui_parameters(void); + +#ifdef __cplusplus +} /*extern "C"*/ +#endif + +#endif \ No newline at end of file diff --git a/source/main/display_valeton.c b/source/main/display_valeton.c new file mode 100644 index 00000000..74789b08 --- /dev/null +++ b/source/main/display_valeton.c @@ -0,0 +1,377 @@ +/* + Copyright (C) 2025 Greg Smith + +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. + +*/ + +#include +#include "sdkconfig.h" +#include +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "freertos/semphr.h" +#include "esp_timer.h" +#include "esp_lcd_panel_ops.h" +#include "esp_lcd_panel_rgb.h" +#include "driver/gpio.h" +#include "esp_err.h" +#include "esp_system.h" +#include "esp_wifi.h" +#include "esp_event.h" +#include "esp_log.h" +#include "nvs_flash.h" +#include "driver/uart.h" +#include "driver/gpio.h" +#include "driver/spi_master.h" +#include "lvgl.h" +#include "demos/lv_demos.h" +#include "esp_lcd_panel_io.h" +#include "esp_lcd_panel_vendor.h" +#include "esp_lcd_panel_ops.h" +#include "esp_vfs.h" +#include "esp_vfs_fat.h" +#include "esp_ota_ops.h" +#include "sys/param.h" +#include "esp_wifi.h" +#include "esp_log.h" +#include "esp_mac.h" +#include "esp_crc.h" +#include "esp_now.h" +#include "driver/i2c.h" +#include "soc/lldesc.h" +#include "esp_lcd_touch_gt911.h" +#include "esp_lcd_touch_cst816s.h" +#include "esp_lcd_gc9107.h" +#include "esp_lcd_sh8601.h" +#include "esp_intr_alloc.h" +#include "main.h" +#if CONFIG_TONEX_CONTROLLER_HAS_DISPLAY + #include "ui.h" + #include "images.h" + #include "actions.h" +#endif +#include "usb/usb_host.h" +#include "usb/cdc_acm_host.h" +#include "esp_partition.h" +#include "usb_comms.h" +#include "usb_valeton_gp5.h" +#include "usb_tonex.h" +#include "display.h" +#include "display_valeton.h" +#include "CH422G.h" +#include "control.h" +#include "task_priorities.h" +#include "midi_control.h" +#include "LP5562.h" +#include "valeton_params.h" +#include "platform_common.h" + +static const char *TAG = "app_display_valeton"; + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +void valeton_show_settings_tab(lv_event_t * e) +{ +#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI + lv_obj_t* target = lv_event_get_current_target(e); + + if (target == objects.ui_icon_val_pre) + { + //todo + } + else if (target == objects.ui_icon_val_nr) + { + } + else if (target == objects.ui_icon_val_rvb) + { + } + else if ((target == objects.ui_icon_val_amp) || (target == objects.ui_icon_val_cab)) + { + } + else if (target == objects.ui_icon_val_tc) + { + } + else if (target == objects.ui_icon_val_eq) + { + } + else if (target == objects.ui_icon_val_mod) + { + } + else if (target == objects.ui_icon_val_dly) + { + } + else if (target == objects.ui_icon_val_dst) + { + } +#endif //CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +void valeton_action_effect_icon_clicked(lv_event_t * e) +{ +#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI + tModellerParameter* param_ptr; + float value; + lv_event_code_t event_code = lv_event_get_code(e); + lv_obj_t* event_object = lv_event_get_target(e); + + // called from LVGL + ESP_LOGI(TAG, "action_effect_icon_clicked"); + + if (event_code == LV_EVENT_SHORT_CLICKED) + { + if (event_object == objects.ui_icon_val_pre) + { + ESP_LOGI(TAG, "UI Toggle Pre"); + + valeton_params_get_locked_access(¶m_ptr); + if (param_ptr[VALETON_PARAM_PRE_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + valeton_params_release_locked_access(); + + usb_modify_parameter(VALETON_PARAM_PRE_ENABLE, value); + } + else if (event_object == objects.ui_icon_val_nr) + { + ESP_LOGI(TAG, "UI Toggle NR"); + + valeton_params_get_locked_access(¶m_ptr); + if (param_ptr[VALETON_PARAM_NR_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + valeton_params_release_locked_access(); + + usb_modify_parameter(VALETON_PARAM_NR_ENABLE, value); + } + else if (event_object == objects.ui_icon_val_rvb) + { + ESP_LOGI(TAG, "UI Toggle RVB"); + + valeton_params_get_locked_access(¶m_ptr); + if (param_ptr[VALETON_PARAM_RVB_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + valeton_params_release_locked_access(); + + usb_modify_parameter(VALETON_PARAM_RVB_ENABLE, value); + } + else if (event_object == objects.ui_icon_val_eq) + { + ESP_LOGI(TAG, "UI Toggle EQ"); + + valeton_params_get_locked_access(¶m_ptr); + if (param_ptr[VALETON_PARAM_EQ_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + valeton_params_release_locked_access(); + + usb_modify_parameter(VALETON_PARAM_EQ_ENABLE, value); + } + else if (event_object == objects.ui_icon_val_mod) + { + ESP_LOGI(TAG, "UI Toggle Mod"); + + valeton_params_get_locked_access(¶m_ptr); + if (param_ptr[VALETON_PARAM_MOD_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + valeton_params_release_locked_access(); + + usb_modify_parameter(VALETON_PARAM_MOD_ENABLE, value); + } + else if (event_object == objects.ui_icon_val_dly) + { + ESP_LOGI(TAG, "UI Toggle Dly"); + + valeton_params_get_locked_access(¶m_ptr); + if (param_ptr[VALETON_PARAM_DLY_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + valeton_params_release_locked_access(); + + usb_modify_parameter(VALETON_PARAM_DLY_ENABLE, value); + } + else if (event_object == objects.ui_icon_val_dst) + { + ESP_LOGI(TAG, "UI Toggle Dst"); + + valeton_params_get_locked_access(¶m_ptr); + if (param_ptr[VALETON_PARAM_DIST_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + valeton_params_release_locked_access(); + + usb_modify_parameter(VALETON_PARAM_DIST_ENABLE, value); + } + else if (event_object == objects.ui_icon_val_amp) + { + //todo + } + else if (event_object == objects.ui_icon_val_cab) + { + //todo + } + else if (event_object == objects.ui_icon_val_tc) + { + //todo + } + else + { + ESP_LOGI(TAG, "UI Toggle unknown"); + } + } + else if (event_code == LV_EVENT_LONG_PRESSED) + { + // change to settings page and jump to relevant tab + action_show_settings_page(e); + valeton_show_settings_tab(e); + } +#endif //CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +void valeton_action_parameter_changed(lv_event_t * e) +{ +#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI + // get the object that was changed + lv_obj_t* obj = lv_event_get_current_target(e); + + ESP_LOGI(TAG, "Valeton Parameter changed"); + + //todo + +#endif // CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +void valeton_update_icon_order(void) +{ +#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI + //todo +#endif +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +uint8_t valeton_update_ui_parameters(void) +{ + tModellerParameter* param_ptr; + __attribute__((unused)) char value_string[20]; + +#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI + + for (uint16_t param = 0; param < VALETON_PARAM_LAST; param++) + { + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + tModellerParameter* param_entry = ¶m_ptr[param]; + + // debug + //ESP_LOGI(TAG, "Param %d: val: %02f, min: %02f, max: %02f", param, param_entry->Value, param_entry->Min, param_entry->Max); + + //todo + + valeton_params_release_locked_access(); + } + } +#endif + +#if CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_169 \ + || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_169TOUCH \ + || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_M5ATOMS3R \ + || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_LILYGO_TDISPLAY_S3 \ + || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_19TOUCH + + for (uint16_t param = 0; param < VALETON_PARAM_LAST; param++) + { + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + tModellerParameter* param_entry = ¶m_ptr[param]; + + // debug + //ESP_LOGI(TAG, "Param %d: val: %02f, min: %02f, max: %02f", param, param_entry->Value, param_entry->Min, param_entry->Max); + + //todo + + valeton_params_release_locked_access(); + } + } +#endif + + return 1; +} diff --git a/source/main/display_valeton.h b/source/main/display_valeton.h new file mode 100644 index 00000000..0864756b --- /dev/null +++ b/source/main/display_valeton.h @@ -0,0 +1,37 @@ +/* + Copyright (C) 2024 Greg Smith + +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 _DISPLAY_VALETON_H +#define _DISPLAY_VALETON_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "lvgl.h" + +void valeton_show_settings_tab(lv_event_t* e); +void valeton_action_effect_icon_clicked(lv_event_t* e); +void valeton_action_parameter_changed(lv_event_t* e); +void valeton_update_icon_order(void); +uint8_t valeton_update_ui_parameters(void); + +#ifdef __cplusplus +} /*extern "C"*/ +#endif + +#endif \ No newline at end of file diff --git a/source/main/tonex_params.c b/source/main/tonex_params.c index a3c33b36..049e498b 100644 --- a/source/main/tonex_params.c +++ b/source/main/tonex_params.c @@ -43,144 +43,144 @@ static SemaphoreHandle_t ParamMutex; // "value" below is just a default, is overridden by the preset on load static tModellerParameter TonexParameters[TONEX_GLOBAL_LAST] = { - //value, Min, Max, Name Type - {0, 0, 1, "NG POST", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_NOISE_GATE_POST - {1, 0, 1, "NG POWER", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_NOISE_GATE_ENABLE, - {-64, -100, 0, "NG THRESH", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_NOISE_GATE_THRESHOLD, - {20, 5, 500, "NG REL", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_NOISE_GATE_RELEASE, - {-60, -100, -20, "NG DEPTH", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_NOISE_GATE_DEPTH, + //value, Min, Max, Name Type Data1,2,3 + {0, 0, 1, "NG POST", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_NOISE_GATE_POST + {1, 0, 1, "NG POWER", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_NOISE_GATE_ENABLE, + {-64, -100, 0, "NG THRESH", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_NOISE_GATE_THRESHOLD, + {20, 5, 500, "NG REL", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_NOISE_GATE_RELEASE, + {-60, -100, -20, "NG DEPTH", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_NOISE_GATE_DEPTH, // Compressor - {1, 0, 1, "COMP POST", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_COMP_POST, - {0, 0, 1, "COMP POWER", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_COMP_ENABLE, - {-14, -40, 0, "COMP THRESH", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_COMP_THRESHOLD, - {-12, -30, 10, "COMP GAIN", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_COMP_MAKE_UP, - {14, 1, 51, "COMP ATTACK", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_COMP_ATTACK, + {1, 0, 1, "COMP POST", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_COMP_POST, + {0, 0, 1, "COMP POWER", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_COMP_ENABLE, + {-14, -40, 0, "COMP THRESH", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_COMP_THRESHOLD, + {-12, -30, 10, "COMP GAIN", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_COMP_MAKE_UP, + {14, 1, 51, "COMP ATTACK", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_COMP_ATTACK, // EQ - {0, 0, 1, "EQ POST", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_EQ_POST, // Pre/Post - {5, 0, 10, "EQ BASS", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_EQ_BASS, - {300, 75, 600, "EQ BFREQ", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_EQ_BASS_FREQ, - {5, 0, 10, "EQ MID", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_EQ_MID, - {0.7, 0.2, 3.0, "EQ MIDQ", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_EQ_MIDQ, - {750, 150, 5000, "EQ MFREQ", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_EQ_MID_FREQ, - {5, 0, 10, "EQ TREBLE", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_EQ_TREBLE, - {1900, 1000, 4000, "EQ TFREQ", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_EQ_TREBLE_FREQ, + {0, 0, 1, "EQ POST", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_EQ_POST, // Pre/Post + {5, 0, 10, "EQ BASS", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_EQ_BASS, + {300, 75, 600, "EQ BFREQ", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_EQ_BASS_FREQ, + {5, 0, 10, "EQ MID", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_EQ_MID, + {0.7, 0.2, 3.0, "EQ MIDQ", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_EQ_MIDQ, + {750, 150, 5000, "EQ MFREQ", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_EQ_MID_FREQ, + {5, 0, 10, "EQ TREBLE", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_EQ_TREBLE, + {1900, 1000, 4000, "EQ TFREQ", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_EQ_TREBLE_FREQ, // Amplifier Model - {1, 0, 1, "MDL AMP", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_MODEL_AMP_ENABLE, - {0, 0, 1, "MDL SW1", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_MODEL_SW1, - {5, 0, 10, "MDL GAIN", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_MODEL_GAIN, - {5, 0, 10, "MDL VOL", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_MODEL_VOLUME, - {100, 0, 100, "MDL MIX", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_MODEX_MIX, - {1, 0, 1, "MDL CABU", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_MODEL_CABINET_UNKNOWN - {0, 0, 2, "MDL CAB", MODELLER_PARAM_TYPE_SELECT}, // TONEX_PARAM_CABINET_TYPE, // 0 = TONEX_CABINET_TONE_MODEL, 1=TONEX_CABINET_VIR, 2=TONEX_CABINET_DISABLED + {1, 0, 1, "MDL AMP", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_MODEL_AMP_ENABLE, + {0, 0, 1, "MDL SW1", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_MODEL_SW1, + {5, 0, 10, "MDL GAIN", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_MODEL_GAIN, + {5, 0, 10, "MDL VOL", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_MODEL_VOLUME, + {100, 0, 100, "MDL MIX", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_MODEX_MIX, + {1, 0, 1, "MDL CABU", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_MODEL_CABINET_UNKNOWN + {0, 0, 2, "MDL CAB", MODELLER_PARAM_TYPE_SELECT, 0, 0, 0}, // TONEX_PARAM_CABINET_TYPE, // 0 = TONEX_CABINET_TONE_MODEL, 1=TONEX_CABINET_VIR, 2=TONEX_CABINET_DISABLED // Virtual IR Cabinet - {5, 0, 10, "VIR_CMDL", MODELLER_PARAM_TYPE_SELECT}, // TONEX_PARAM_VIR_CABINET_MODEL, - {0, 0, 10, "VIR_RESO", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_VIR_RESO, - {0, 0, 2, "VIR M1", MODELLER_PARAM_TYPE_SELECT}, // TONEX_PARAM_VIR_MIC_1, - {0, 0, 10, "VIR M1X", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_VIR_MIC_1_X, - {0, 0, 10, "VIR M1Z", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_VIR_MIC_1_Z, - {0, 0, 2, "VIR M2", MODELLER_PARAM_TYPE_SELECT}, // TONEX_PARAM_VIR_MIC_2 - {0, 0, 2, "VIR M2X", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_VIR_MIC_2_X - {0, 0, 10, "VIR M2Z", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_VIR_MIC_2_Z - {0, -100, 100, "VIR BLEND", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_VIR_BLEND + {5, 0, 10, "VIR_CMDL", MODELLER_PARAM_TYPE_SELECT, 0, 0, 0}, // TONEX_PARAM_VIR_CABINET_MODEL, + {0, 0, 10, "VIR_RESO", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_VIR_RESO, + {0, 0, 2, "VIR M1", MODELLER_PARAM_TYPE_SELECT, 0, 0, 0}, // TONEX_PARAM_VIR_MIC_1, + {0, 0, 10, "VIR M1X", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_VIR_MIC_1_X, + {0, 0, 10, "VIR M1Z", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_VIR_MIC_1_Z, + {0, 0, 2, "VIR M2", MODELLER_PARAM_TYPE_SELECT, 0, 0, 0}, // TONEX_PARAM_VIR_MIC_2 + {0, 0, 2, "VIR M2X", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_VIR_MIC_2_X + {0, 0, 10, "VIR M2Z", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_VIR_MIC_2_Z + {0, -100, 100, "VIR BLEND", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_VIR_BLEND // More amp params - {5, 0, 10, "MDL PRE", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_MODEL_PRESENCE - {5, 0, 10, "MDL DEP", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_MODEL_DEPTH + {5, 0, 10, "MDL PRE", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_MODEL_PRESENCE + {5, 0, 10, "MDL DEP", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_MODEL_DEPTH // Reverb - {0, 0, 1, "RVB POS", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_REVERB_POSITION, - {1, 0, 1, "RVB POWER", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_REVERB_ENABLE, - {0, 0, 5, "RVB MODEL", MODELLER_PARAM_TYPE_SELECT}, // TONEX_PARAM_REVERB_MODEL, - {5, 0, 10, "RVB S1 T", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING1_TIME, - {0, 0, 500, "RVB S1 P", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING1_PREDELAY, - {0, -10, 10, "RVB S1 C", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING1_COLOR, - {0, 0, 100, "RVB S1 M", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING1_MIX, - {5, 0, 10, "RVB S2 T", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING2_TIME, - {0, 0, 500, "RVB S2 P", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING2_PREDELAY, - {0, -10, 10, "RVB S2 C", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING2_COLOR, - {0, 0, 100, "RVB S2 M", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING2_MIX, - {5, 0, 10, "RVB S3 T", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING3_TIME, - {0, 0, 500, "RVB S3 P", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING3_PREDELAY, - {0, -10, 10, "RVB S3 C", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING3_COLOR, - {0, 0, 100, "RVB S3 M", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING3_MIX, - {5, 0, 10, "RVB S4 T", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING4_TIME, - {0, 0, 500, "RVB S4 P", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING4_PREDELAY, - {0, -10, 10, "RVB S4 C", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING4_COLOR, - {0, 0, 100, "RVB S4 M", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_SPRING4_MIX, - {5, 0, 10, "RVB RM T", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_ROOM_TIME, - {0, 0, 500, "RVB RM P", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_ROOM_PREDELAY, - {0, -10, 10, "RVB RM C", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_ROOM_COLOR, - {0, 0, 100, "RVB RM M", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_ROOM_MIX, - {5, 0, 10, "RVB PL T", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_PLATE_TIME, - {0, 0, 500, "RVB PL P", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_PLATE_PREDELAY, - {0, -10, 10, "RVB PL C", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_PLATE_COLOR, - {0, 0, 100, "RVB PL M", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_REVERB_PLATE_MIX, + {0, 0, 1, "RVB POS", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_REVERB_POSITION, + {1, 0, 1, "RVB POWER", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_REVERB_ENABLE, + {0, 0, 5, "RVB MODEL", MODELLER_PARAM_TYPE_SELECT, 0, 0, 0}, // TONEX_PARAM_REVERB_MODEL, + {5, 0, 10, "RVB S1 T", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING1_TIME, + {0, 0, 500, "RVB S1 P", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING1_PREDELAY, + {0, -10, 10, "RVB S1 C", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING1_COLOR, + {0, 0, 100, "RVB S1 M", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING1_MIX, + {5, 0, 10, "RVB S2 T", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING2_TIME, + {0, 0, 500, "RVB S2 P", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING2_PREDELAY, + {0, -10, 10, "RVB S2 C", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING2_COLOR, + {0, 0, 100, "RVB S2 M", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING2_MIX, + {5, 0, 10, "RVB S3 T", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING3_TIME, + {0, 0, 500, "RVB S3 P", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING3_PREDELAY, + {0, -10, 10, "RVB S3 C", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING3_COLOR, + {0, 0, 100, "RVB S3 M", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING3_MIX, + {5, 0, 10, "RVB S4 T", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING4_TIME, + {0, 0, 500, "RVB S4 P", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING4_PREDELAY, + {0, -10, 10, "RVB S4 C", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING4_COLOR, + {0, 0, 100, "RVB S4 M", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_SPRING4_MIX, + {5, 0, 10, "RVB RM T", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_ROOM_TIME, + {0, 0, 500, "RVB RM P", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_ROOM_PREDELAY, + {0, -10, 10, "RVB RM C", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_ROOM_COLOR, + {0, 0, 100, "RVB RM M", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_ROOM_MIX, + {5, 0, 10, "RVB PL T", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_PLATE_TIME, + {0, 0, 500, "RVB PL P", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_PLATE_PREDELAY, + {0, -10, 10, "RVB PL C", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_PLATE_COLOR, + {0, 0, 100, "RVB PL M", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_REVERB_PLATE_MIX, // Modulation - {0, 0, 1, "MOD POST", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_MODULATION_POST, - {0, 0, 1, "MOD POWER", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_MODULATION_ENABLE, - {0, 0, 4, "MOD MODEL", MODELLER_PARAM_TYPE_SELECT}, // TONEX_PARAM_MODULATION_MODEL, - {0, 0, 1, "MOD CH S", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_MODULATION_CHORUS_SYNC, - {0, 0, 17, "MOD CH T", MODELLER_PARAM_TYPE_SELECT}, // TONEX_PARAM_MODULATION_CHORUS_TS, - {0.5, 0.1, 10, "MOD CH R", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_MODULATION_CHORUS_RATE, - {0, 0, 100, "MOD CH D", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_MODULATION_CHORUS_DEPTH, - {0, 0, 10, "MOD CH L", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_MODULATION_CHORUS_LEVEL, - {0, 0, 1, "MOD TR S", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_MODULATION_TREMOLO_SYNC, - {0, 0, 17, "MOD TR T", MODELLER_PARAM_TYPE_SELECT}, // TONEX_PARAM_MODULATION_TREMOLO_TS, - {0.5, 0.1, 10, "MOD TR R", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_MODULATION_TREMOLO_RATE, - {0, 0, 10, "MOD TR P", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_MODULATION_TREMOLO_SHAPE, - {0, 0, 100, "MOD TR D", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_MODULATION_TREMOLO_SPREAD, - {0, 0, 10, "MOD TR L", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_MODULATION_TREMOLO_LEVEL, - {0, 0, 1, "MOD PH S", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_PHASER_SYNC, - {0, 0, 17, "MOD PH T", MODELLER_PARAM_TYPE_SELECT}, // TONEX_PARAM_PHASER_TS, - {0.5, 0.1, 10, "MOD PH R", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_PHASER_RATE, - {0, 0, 100, "MOD PH D", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_PHASER_DEPTH, - {0, 0, 10, "MOD PH L", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_PHASER_LEVEL, - {0, 0, 1, "MOD FL S", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_FLANGER_SYNC, - {0, 0, 17, "MOD FL T", MODELLER_PARAM_TYPE_SELECT}, // TONEX_PARAM_FLANGER_TS, - {0.5, 0.1, 10, "MOD FL R", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_FLANGER_RATE, - {0, 0, 100, "MOD FL D", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_FLANGER_DEPTH, - {0, 0, 100, "MOD FL F", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_FLANGER_FEEDEBACK, - {0, 0, 10, "MOD FL L", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_FLANGER_LEVEL, - {0, 0, 1, "MOD RO S", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_ROTARY_SYNC, - {0, 0, 17, "MOD RO T", MODELLER_PARAM_TYPE_SELECT}, // TONEX_PARAM_ROTARY_TS, - {0, 0, 400, "MOD RO S", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_ROTARY_SPEED, - {0, 0, 300, "MOD RO R", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_ROTARY_RADIUS, - {0, 0, 100, "MOD RO D", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_ROTARY_SPREAD, - {0, 0, 10, "MOD RO L", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_ROTARY_LEVEL, + {0, 0, 1, "MOD POST", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_MODULATION_POST, + {0, 0, 1, "MOD POWER", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_MODULATION_ENABLE, + {0, 0, 4, "MOD MODEL", MODELLER_PARAM_TYPE_SELECT, 0, 0, 0}, // TONEX_PARAM_MODULATION_MODEL, + {0, 0, 1, "MOD CH S", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_MODULATION_CHORUS_SYNC, + {0, 0, 17, "MOD CH T", MODELLER_PARAM_TYPE_SELECT, 0, 0, 0}, // TONEX_PARAM_MODULATION_CHORUS_TS, + {0.5, 0.1, 10, "MOD CH R", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_MODULATION_CHORUS_RATE, + {0, 0, 100, "MOD CH D", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_MODULATION_CHORUS_DEPTH, + {0, 0, 10, "MOD CH L", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_MODULATION_CHORUS_LEVEL, + {0, 0, 1, "MOD TR S", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_MODULATION_TREMOLO_SYNC, + {0, 0, 17, "MOD TR T", MODELLER_PARAM_TYPE_SELECT, 0, 0, 0}, // TONEX_PARAM_MODULATION_TREMOLO_TS, + {0.5, 0.1, 10, "MOD TR R", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_MODULATION_TREMOLO_RATE, + {0, 0, 10, "MOD TR P", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_MODULATION_TREMOLO_SHAPE, + {0, 0, 100, "MOD TR D", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_MODULATION_TREMOLO_SPREAD, + {0, 0, 10, "MOD TR L", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_MODULATION_TREMOLO_LEVEL, + {0, 0, 1, "MOD PH S", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_PHASER_SYNC, + {0, 0, 17, "MOD PH T", MODELLER_PARAM_TYPE_SELECT, 0, 0, 0}, // TONEX_PARAM_PHASER_TS, + {0.5, 0.1, 10, "MOD PH R", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_PHASER_RATE, + {0, 0, 100, "MOD PH D", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_PHASER_DEPTH, + {0, 0, 10, "MOD PH L", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_PHASER_LEVEL, + {0, 0, 1, "MOD FL S", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_FLANGER_SYNC, + {0, 0, 17, "MOD FL T", MODELLER_PARAM_TYPE_SELECT, 0, 0, 0}, // TONEX_PARAM_FLANGER_TS, + {0.5, 0.1, 10, "MOD FL R", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_FLANGER_RATE, + {0, 0, 100, "MOD FL D", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_FLANGER_DEPTH, + {0, 0, 100, "MOD FL F", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_FLANGER_FEEDEBACK, + {0, 0, 10, "MOD FL L", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_FLANGER_LEVEL, + {0, 0, 1, "MOD RO S", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_ROTARY_SYNC, + {0, 0, 17, "MOD RO T", MODELLER_PARAM_TYPE_SELECT, 0, 0, 0}, // TONEX_PARAM_ROTARY_TS, + {0, 0, 400, "MOD RO S", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_ROTARY_SPEED, + {0, 0, 300, "MOD RO R", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_ROTARY_RADIUS, + {0, 0, 100, "MOD RO D", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_ROTARY_SPREAD, + {0, 0, 10, "MOD RO L", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_ROTARY_LEVEL, // Delay - {0, 0, 1, "DLY POST", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_DELAY_POST, - {0, 0, 1, "DLY POWER", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_DELAY_ENABLE, - {0, 0, 1, "DLY MODEL", MODELLER_PARAM_TYPE_SELECT}, // TONEX_PARAM_DELAY_MODEL, - {0, 0, 1, "DLY DG S", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_DELAY_DIGITAL_SYNC, - {0, 0, 17, "DLY DG T", MODELLER_PARAM_TYPE_SELECT}, // TONEX_PARAM_DELAY_DIGITAL_TS, - {0, 0, 1000, "DLY DT M", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_DELAY_DIGITAL_TIME, - {0, 0, 100, "DLY DT F", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_DELAY_DIGITAL_FEEDBACK, - {0, 0, 1, "DLY DT O", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_DELAY_DIGITAL_MODE, - {0, 0, 100, "DLY DT X", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_DELAY_DIGITAL_MIX, - {0, 0, 1, "DLY TA S", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_DELAY_TAPE_SYNC, - {0, 0, 17, "DLY TA T", MODELLER_PARAM_TYPE_SELECT}, // TONEX_PARAM_DELAY_TAPE_TS, - {0, 0, 1000, "DLY TA M", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_DELAY_TAPE_TIME, - {0, 0, 100, "DLY TA F", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_DELAY_TAPE_FEEDBACK, - {0, 0, 1, "DLY TA O", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_PARAM_DELAY_TAPE_MODE, - {0, 0, 100, "DLY TA X", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_DELAY_TAPE_MIX, + {0, 0, 1, "DLY POST", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_DELAY_POST, + {0, 0, 1, "DLY POWER", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_DELAY_ENABLE, + {0, 0, 1, "DLY MODEL", MODELLER_PARAM_TYPE_SELECT, 0, 0, 0}, // TONEX_PARAM_DELAY_MODEL, + {0, 0, 1, "DLY DG S", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_DELAY_DIGITAL_SYNC, + {0, 0, 17, "DLY DG T", MODELLER_PARAM_TYPE_SELECT, 0, 0, 0}, // TONEX_PARAM_DELAY_DIGITAL_TS, + {0, 0, 1000, "DLY DT M", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_DELAY_DIGITAL_TIME, + {0, 0, 100, "DLY DT F", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_DELAY_DIGITAL_FEEDBACK, + {0, 0, 1, "DLY DT O", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_DELAY_DIGITAL_MODE, + {0, 0, 100, "DLY DT X", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_DELAY_DIGITAL_MIX, + {0, 0, 1, "DLY TA S", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_DELAY_TAPE_SYNC, + {0, 0, 17, "DLY TA T", MODELLER_PARAM_TYPE_SELECT, 0, 0, 0}, // TONEX_PARAM_DELAY_TAPE_TS, + {0, 0, 1000, "DLY TA M", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_DELAY_TAPE_TIME, + {0, 0, 100, "DLY TA F", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_DELAY_TAPE_FEEDBACK, + {0, 0, 1, "DLY TA O", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_PARAM_DELAY_TAPE_MODE, + {0, 0, 100, "DLY TA X", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_DELAY_TAPE_MIX, // dummy end of params marker - {0, 0, 0, "LAST", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_LAST, + {0, 0, 0, "LAST", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_LAST, //************* Global params ***************** - {80, 40, 240, "BPM", MODELLER_PARAM_TYPE_RANGE}, // TONEX_GLOBAL_BPM - {0, -15, 15, "TRIM", MODELLER_PARAM_TYPE_RANGE}, // TONEX_GLOBAL_INPUT_TRIM - {0, 0, 1, "CABSIM", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_GLOBAL_CABSIM_BYPASS - {0, 0, 1, "TEMPOS", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_GLOBAL_TEMPO_SOURCE - {440, 415, 465, "TUNEREF", MODELLER_PARAM_TYPE_RANGE}, // TONEX_GLOBAL_TUNING_REFERENCE - {0, 0, 1, "BYPASS", MODELLER_PARAM_TYPE_SWITCH}, // TONEX_GLOBAL_BYPASS - {0, -40, 3, "MVOL", MODELLER_PARAM_TYPE_RANGE}, // TONEX_GLOBAL_MASTER_VOLUME + {80, 40, 240, "BPM", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_GLOBAL_BPM + {0, -15, 15, "TRIM", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_GLOBAL_INPUT_TRIM + {0, 0, 1, "CABSIM", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_GLOBAL_CABSIM_BYPASS + {0, 0, 1, "TEMPOS", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_GLOBAL_TEMPO_SOURCE + {440, 415, 465, "TUNEREF", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_GLOBAL_TUNING_REFERENCE + {0, 0, 1, "BYPASS", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // TONEX_GLOBAL_BYPASS + {0, -40, 3, "MVOL", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_GLOBAL_MASTER_VOLUME }; static tTonexPresetColor TonexPresetColors[MAX_SUPPORTED_PRESETS]; diff --git a/source/main/ui_generated_480x320land/screens.c b/source/main/ui_generated_480x320land/screens.c index 9de0e989..39282098 100644 --- a/source/main/ui_generated_480x320land/screens.c +++ b/source/main/ui_generated_480x320land/screens.c @@ -443,8 +443,8 @@ void create_screen_screen1() { lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); lv_img_set_src(obj, &img_pre_off); lv_img_set_zoom(obj, 200); - lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_SHORT_CLICKED, (void *)0); lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_LONG_PRESSED, (void *)0); + lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_SHORT_CLICKED, (void *)0); lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE); } { diff --git a/source/main/ui_generated_800x480land/screens.c b/source/main/ui_generated_800x480land/screens.c index 570365c3..3256226e 100644 --- a/source/main/ui_generated_800x480land/screens.c +++ b/source/main/ui_generated_800x480land/screens.c @@ -444,7 +444,7 @@ void create_screen_screen1() { lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); lv_img_set_src(obj, &img_pre_off); lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_LONG_PRESSED, (void *)0); - lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_SHORT_CLICKED, (void *)0); lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE); } { @@ -455,7 +455,7 @@ void create_screen_screen1() { lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); lv_img_set_src(obj, &img_amp_off); lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_LONG_PRESSED, (void *)0); - lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_SHORT_CLICKED, (void *)0); lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE); } { @@ -466,7 +466,7 @@ void create_screen_screen1() { lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); lv_img_set_src(obj, &img_nr_off); lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_LONG_PRESSED, (void *)0); - lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_SHORT_CLICKED, (void *)0); lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE); } { @@ -477,7 +477,7 @@ void create_screen_screen1() { lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); lv_img_set_src(obj, &img_rvb_off); lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_LONG_PRESSED, (void *)0); - lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_SHORT_CLICKED, (void *)0); lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE); } { @@ -488,7 +488,7 @@ void create_screen_screen1() { lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); lv_img_set_src(obj, &img_cab_off); lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_LONG_PRESSED, (void *)0); - lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_SHORT_CLICKED, (void *)0); lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE); } { @@ -499,7 +499,7 @@ void create_screen_screen1() { lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); lv_img_set_src(obj, &img_tc_off); lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_PRESSING, (void *)0); - lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_SHORT_CLICKED, (void *)0); lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE); } { @@ -510,7 +510,7 @@ void create_screen_screen1() { lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); lv_img_set_src(obj, &img_eq_off); lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_LONG_PRESSED, (void *)0); - lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_SHORT_CLICKED, (void *)0); lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE); } { @@ -521,7 +521,7 @@ void create_screen_screen1() { lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); lv_img_set_src(obj, &img_mod_off); lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_LONG_PRESSED, (void *)0); - lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_SHORT_CLICKED, (void *)0); lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE); } { @@ -532,7 +532,7 @@ void create_screen_screen1() { lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); lv_img_set_src(obj, &img_dly_off); lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_LONG_PRESSED, (void *)0); - lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_SHORT_CLICKED, (void *)0); lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE); } { @@ -543,7 +543,7 @@ void create_screen_screen1() { lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); lv_img_set_src(obj, &img_dst_off); lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_LONG_PRESSED, (void *)0); - lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_event_cb(obj, action_effect_icon_clicked, LV_EVENT_SHORT_CLICKED, (void *)0); lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE); } { diff --git a/source/main/usb_valeton_gp5.c b/source/main/usb_valeton_gp5.c index 7e230964..887a3493 100644 --- a/source/main/usb_valeton_gp5.c +++ b/source/main/usb_valeton_gp5.c @@ -149,11 +149,11 @@ static uint8_t* TransmitBuffer; */ static void usb_valeton_gp5_request_preset_sync(void); static void usb_valeton_gp5_request_current_preset(void); -static void usb_valeton_gp5_request_something_2(void); static void usb_valeton_gp5_get_preset(uint8_t index); static void usb_valeton_gp5_set_preset(uint8_t index); static void usb_valeton_gp5_request_preset_params(void); static void usb_valeton_gp5_set_effect_block_state(uint8_t block_index, uint8_t state); +static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint32_t len) ; /**************************************************************************** * NAME: @@ -253,8 +253,8 @@ static esp_err_t usb_valeton_gp5_send_sysex(const uint8_t* buffer, uint8_t len, memset((void*)TransmitBuffer, 0, VALETON_GP5_TX_TEMP_BUFFER_SIZE); // debug - ESP_LOGI(TAG, "usb_valeton_gp5_send_sysex input:"); - ESP_LOG_BUFFER_HEXDUMP(TAG, buffer, len, ESP_LOG_INFO); + //ESP_LOGI(TAG, "usb_valeton_gp5_send_sysex input:"); + //ESP_LOG_BUFFER_HEXDUMP(TAG, buffer, len, ESP_LOG_INFO); // set start marker TransmitBuffer[write_index++] = 0xF0; @@ -268,9 +268,10 @@ static esp_err_t usb_valeton_gp5_send_sysex(const uint8_t* buffer, uint8_t len, TransmitBuffer[write_index++] = 0x00; TransmitBuffer[write_index++] = 0x00; - // length bytes. Value sent as e.g. 0x14 as 01 04 - TransmitBuffer[write_index++] = len >> 4; - TransmitBuffer[write_index++] = len & 0x0F; + // length bytes. Value sent as e.g. 0x14 as 01 04. Sent as number of byte pairs hence divide by 2 + // +2 here for the 0102/0101 bytes that come next + TransmitBuffer[write_index++] = ((len + 2) / 2) >> 4; + TransmitBuffer[write_index++] = ((len + 2) / 2) & 0x0F; // 0101 for messages sent to GP5, 0102 for receive?? // or could be 0101 for requests, and 0102 for commands? @@ -358,8 +359,8 @@ static esp_err_t usb_valeton_gp5_send_sysex(const uint8_t* buffer, uint8_t len, } // debug - ESP_LOGI(TAG, "usb_valeton_gp5_send_sysex usb tx:"); - ESP_LOG_BUFFER_HEXDUMP(TAG, usb_transfer, write_index, ESP_LOG_INFO); + //ESP_LOGI(TAG, "usb_valeton_gp5_send_sysex usb tx:"); + //ESP_LOG_BUFFER_HEXDUMP(TAG, usb_transfer, write_index, ESP_LOG_INFO); // send packet if (midi_host_data_tx_blocking(midi_dev, (const uint8_t*)usb_transfer, write_index, 50) != ESP_OK) @@ -371,115 +372,6 @@ static esp_err_t usb_valeton_gp5_send_sysex(const uint8_t* buffer, uint8_t len, return ESP_OK; } -/**************************************************************************** -* NAME: -* DESCRIPTION: -* PARAMETERS: -* RETURN: -* NOTES: -*****************************************************************************/ -// Decode percentage parameters (delay_mix, delay_feedback, reverb_mix, reverb_decay) -float usb_valeton_gp5_decode_percentage(uint8_t byte30, uint8_t byte31, uint8_t byte33) -{ - float value; - - if (byte33 == 0x00) - { - // 0–7% range - value = (byte30 * 2.0f) + (byte31 / 8.0f); - } - else if (byte33 == 0x01) - { - // 8–31% range - value = 8.0f + (byte30 * 2.0f) + (byte31 / 8.0f); - } - else if (byte33 == 0x02) - { - // 32–100% range - value = 32.0f + (byte30 * 4.0f) + (byte31 / 4.0f); - } - else if (byte33 == 0x03) - { - // Extended range (e.g., delay_time 128–255ms) - value = 128.0f + (byte30 * 4.0f) + (byte31 / 4.0f); - } - else - { - return -1.0f; - } - - // Apply +2% offset for 32–100% range to match device display - //if (byte33 == 0x02) - //{ - // value += 2.0f; - //} - return value; -} - -/**************************************************************************** -* NAME: -* DESCRIPTION: -* PARAMETERS: -* RETURN: -* NOTES: -*****************************************************************************/ -// Decode delay_time (ms) -float usb_valeton_gp5_decode_time(uint8_t byte30, uint8_t byte31, uint8_t byte33) -{ - if (byte33 == 0x01) - { - // 20–31ms range - return 20.0f + (byte30 * 2.0f) + (byte31 / 8.0f); - } - else if (byte33 == 0x02) - { - // 32–127ms range - return 32.0f + (byte30 * 4.0f) + (byte31 / 4.0f); - } - else if (byte33 == 0x03) - { - // 128–255ms range - return 128.0f + (byte30 * 4.0f) + (byte31 / 4.0f); - } - - return -1.0f; -} - -/**************************************************************************** -* NAME: -* DESCRIPTION: -* PARAMETERS: -* RETURN: -* NOTES: -*****************************************************************************/ -// Decode EQ Level (-50 to 50) -float usb_valeton_gp5_decode_level(uint8_t byte30, uint8_t byte31, uint8_t byte32, uint8_t byte33) -{ - if (byte32 == 0x0c && byte33 == 0x02) - { - // Negative range (-50 to -1) - return -50.0f + (byte30 * 2.0f) + (byte31 / 8.0f); - } - else if (byte32 == 0x04 && byte33 == 0x00) - { - // Positive range (0 to 50) - return (byte30 * 2.0f) + (byte31 / 8.0f); - } - else if (byte32 == 0x04 && byte33 == 0x01) - { - // 8–31 range, possibly mislabeled as Level - return 8.0f + (byte30 * 2.0f) + (byte31 / 8.0f); - } - - return -51.0f; // Invalid -} - - -// The values are IEEE-754 (32 bits, little endian), I was having the same problem at first. -// But when I find the float numbers of some sliders I realized. The bytes for 50 are not 04 08 04 02(48 42) -// You have to add the 4 values before too so the final bytes would be 00 00 00 00 04 08 04 02. (00 00 48 42) -// And that is a very easy function to calculate. - /**************************************************************************** * NAME: * DESCRIPTION: @@ -490,16 +382,15 @@ float usb_valeton_gp5_decode_level(uint8_t byte30, uint8_t byte31, uint8_t byte3 static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) { uint32_t write_index = 0; - uint32_t read_index = 0; uint32_t bytes_read = 0; - uint16_t preset_index = 0; - uint8_t string_index; - uint16_t ascii_char; - uint16_t function; + uint16_t rx_length; uint8_t* tmp_ptr = (uint8_t*)buffer; - uint16_t rx_length = 0; - uint8_t found_message = 0; - char name_string[20] = {0}; + uint16_t chunk_count = 0; + uint16_t this_chunk = 0; + uint8_t found_chunks = 0; + + // debug + //ESP_LOG_BUFFER_HEXDUMP(TAG, buffer, len, ESP_LOG_INFO); // step 1: strip the SysEx markers from the data, to get the message bytes while (bytes_read < len) @@ -526,20 +417,33 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) tmp_ptr++; bytes_read++; - // next 3 bytes are Vendor ID, skip all - tmp_ptr += 3; - bytes_read += 3; - - // skip the 0x04 and last Vendor ID byte + // next 2 bytes are total chunks in this message + chunk_count = (*tmp_ptr << 4) | *(tmp_ptr + 1); tmp_ptr += 2; bytes_read += 2; + // next byte is first byte of current chunk index + this_chunk = (*tmp_ptr << 4); + tmp_ptr++; + bytes_read++; + + // skip the 0x04 + tmp_ptr++; + bytes_read++; + + // get last chunk byte + this_chunk |= *tmp_ptr; + tmp_ptr++; + bytes_read++; + + found_chunks = 1; + + // debug + //ESP_LOGI(TAG, "Total chunks: %d. This chunk: %d", (int)chunk_count, (int)this_chunk); + // grab next 2 bytes (length) - if (!found_message) - { - rx_length = (*tmp_ptr << 8) | *(tmp_ptr + 1); - found_message = 1; - } + // length is number of byte pairs/nibbles (half of byte length) to the next 0xF7 + rx_length = (*tmp_ptr << 4) | *(tmp_ptr + 1); tmp_ptr += 2; bytes_read += 2; @@ -645,13 +549,47 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) ESP_LOGE(TAG, "Processing error 07"); break; } + } + + if (found_chunks) + { + // see if we have all the chunks. +1 here as the total eg 10 is chunks 0 to 9 + if ((this_chunk + 1) == chunk_count) + { + // process this messsage + usb_valeton_gp5_process_single_sysex(ProcessingBuffer, write_index); + + // reset vars for possible next chunk + write_index = 0; + found_chunks = 0; + this_chunk = 0; + chunk_count = 0; + } } - } + return 1; +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint32_t len) +{ + uint32_t read_index = 0; + uint16_t preset_index = 0; + uint8_t string_index; + uint16_t ascii_char; + uint16_t function; + char name_string[20] = {0}; + + ESP_LOGI(TAG, "usb_valeton_gp5_process_single_sysex len: %d", (int)len); // debug - //ESP_LOG_BUFFER_HEXDUMP(TAG, ProcessingBuffer, write_index, ESP_LOG_INFO); - //vTaskDelay(100); + ESP_LOG_BUFFER_HEXDUMP(TAG, buffer, len, ESP_LOG_INFO); // check the message type read_index = 0; @@ -660,16 +598,19 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) read_index += 2; // next 2 bytes are function code - function = (ProcessingBuffer[read_index] << 4) | ProcessingBuffer[read_index + 1]; + function = (buffer[read_index] << 4) | buffer[read_index + 1]; read_index += 2; switch (function) { case 0x08: { +#if 0 + ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], write_index - read_index, ESP_LOG_INFO); + // single preset name/index. Don't need as already done full sync // get the preset index - preset_index = (ProcessingBuffer[read_index] * 16) + ProcessingBuffer[read_index + 1]; + preset_index = (buffer[read_index] * 16) + buffer[read_index + 1]; read_index += 2; // skip 6 bytes of zeros @@ -680,19 +621,20 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) for (uint32_t character = 0; character < 16; character++) { // get 4 bit nibbles into byte e.g. 04 07 into 47 - ascii_char = (ProcessingBuffer[read_index] << 4) | ProcessingBuffer[read_index + 1]; + ascii_char = (buffer[read_index] << 4) | buffer[read_index + 1]; read_index += 2; name_string[string_index++] = (char)ascii_char; } +#endif - ESP_LOGI(TAG, "Got single Preset details"); + ESP_LOGI(TAG, "Got 0x08"); } break; case 0x10: { // unknown - ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&ProcessingBuffer[read_index], write_index - read_index, ESP_LOG_INFO); + ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); ESP_LOGI(TAG, "Got unknown 0x10"); @@ -721,7 +663,7 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) case 0x20: { // unknown, possibly parameters - ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&ProcessingBuffer[read_index], write_index - read_index, ESP_LOG_INFO); + ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); ESP_LOGI(TAG, "Got unknown 0x20"); @@ -785,7 +727,7 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) case 0x24: { // unknown, some sort of user slots? - ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&ProcessingBuffer[read_index], write_index - read_index, ESP_LOG_INFO); + ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); ESP_LOGI(TAG, "Got unknown 0x24"); @@ -1008,11 +950,11 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) for (uint32_t presets = 0; presets < MAX_PRESETS_VALETON_GP5; presets++) { // get the preset index - preset_index = (ProcessingBuffer[read_index] * 16) + ProcessingBuffer[read_index + 1]; + preset_index = (buffer[read_index] * 16) + buffer[read_index + 1]; read_index += 2; // debug - //ESP_LOGI(TAG, "Preset Index: %d %d", (int)ProcessingBuffer[read_index - 2], (int)ProcessingBuffer[read_index - 1]); + //ESP_LOGI(TAG, "Preset Index: %d %d", (int)buffer[read_index - 2], (int)buffer[read_index - 1]); // skip 6 bytes of zeros read_index += 6; @@ -1022,7 +964,7 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) for (uint32_t character = 0; character < 16; character++) { // get 4 bit nibbles into byte e.g. 04 07 into 47 - ascii_char = (ProcessingBuffer[read_index] << 4) | ProcessingBuffer[read_index + 1]; + ascii_char = (buffer[read_index] << 4) | buffer[read_index + 1]; read_index += 2; name_string[string_index++] = (char)ascii_char; @@ -1049,7 +991,7 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) ESP_LOGI(TAG, "Current Preset params?"); // debug - //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&ProcessingBuffer[read_index], write_index - read_index, ESP_LOG_INFO); + //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); // skip the 0x0F 0x0F bytes read_index += 2; @@ -1060,15 +1002,15 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) // suspected 16 byte chunks per parameter. 99 x 16 byte chunks are found. 99 is number of presets, maybe this is not params? #define MESSAGE_LENGTH 34 - for (size_t i = read_index; i <= write_index - read_index - MESSAGE_LENGTH; i += MESSAGE_LENGTH) + for (size_t i = read_index; i <= len - read_index - MESSAGE_LENGTH; i += MESSAGE_LENGTH) { - uint8_t byte12 = ProcessingBuffer[i + 12]; // Effect block - uint8_t byte23 = ProcessingBuffer[i + 23]; // Parameter index or type indicator - uint8_t byte24 = ProcessingBuffer[i + 24]; // For reverb_type/reverb_ok - uint8_t byte30 = ProcessingBuffer[i + 30]; // Coarse value - uint8_t byte31 = ProcessingBuffer[i + 31]; // Fine value - uint8_t byte32 = ProcessingBuffer[i + 32]; // Parameter type/range - uint8_t byte33 = ProcessingBuffer[i + 33]; // Range indicator + uint8_t byte12 = buffer[i + 12]; // Effect block + uint8_t byte23 = buffer[i + 23]; // Parameter index or type indicator + uint8_t byte24 = buffer[i + 24]; // For reverb_type/reverb_ok + uint8_t byte30 = buffer[i + 30]; // Coarse value + uint8_t byte31 = buffer[i + 31]; // Fine value + uint8_t byte32 = buffer[i + 32]; // Parameter type/range + uint8_t byte33 = buffer[i + 33]; // Range indicator //if (byte12 == 0x04) { @@ -1191,8 +1133,8 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) case 0x43: { // current preset index - //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&ProcessingBuffer[read_index], write_index - read_index, ESP_LOG_INFO); - uint8_t current_preset = (ProcessingBuffer[read_index] << 4) | ProcessingBuffer[read_index + 1]; + //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); + uint8_t current_preset = (buffer[read_index] << 4) | buffer[read_index + 1]; ESP_LOGI(TAG, "Got current preset index: %d", current_preset); @@ -1206,7 +1148,7 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) case 0x45: { // unknown. Seems to be some kind of confirmation response or short data - ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&ProcessingBuffer[read_index], write_index - read_index, ESP_LOG_INFO); + ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); ESP_LOGI(TAG, "Got unknown 0x45"); @@ -1218,7 +1160,7 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) case 0x47: { // effect selection confirmation. - ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&ProcessingBuffer[read_index], write_index - read_index, ESP_LOG_INFO); + ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); ESP_LOGI(TAG, "Got 0x47"); @@ -1229,9 +1171,55 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) case 0x48: { // parameter change confirmation - ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&ProcessingBuffer[read_index], write_index - read_index, ESP_LOG_INFO); + ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); + + uint8_t effect_block = (buffer[read_index] << 4) | buffer[read_index + 1]; + read_index += 8; + + uint8_t param_index = (buffer[read_index] << 4) | buffer[read_index + 1]; + read_index += 6; + + uint8_t value[4]; + value[0] = (buffer[read_index] << 4) | buffer[read_index + 1]; + read_index += 2; + + value[1] = (buffer[read_index] << 4) | buffer[read_index + 1]; + read_index += 2; + + value[2] = (buffer[read_index] << 4) | buffer[read_index + 1]; + read_index += 2; - ESP_LOGI(TAG, "Got 0x48"); + value[3] = (buffer[read_index] << 4) | buffer[read_index + 1]; + read_index += 2; + + float value_f; + memcpy((void*)&value_f, (void*)value, sizeof(value_f)); + ESP_LOGI(TAG, "Got 0x48 param changed. Block:%d. Param Index:%d. Value:%f", (int)effect_block, (int)param_index, value_f); + + // locate the parameter and update local copy + tModellerParameter* param_ptr = NULL; + uint8_t block; + uint8_t pedal; + uint8_t param; + + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + for (uint32_t param_index = 0; param_index < VALETON_PARAM_LAST; param_index++) + { + block = param_ptr[param_index].Data1; + pedal = param_ptr[param_index].Data2; + param = param_ptr[param_index].Data3; + + if ((effect_block == block) && (param_index == param)) + { + // found it, update local copy + param_ptr[param_index].Value = value_f; + break; + } + } + + valeton_params_release_locked_access(); + } // example response // f0 0c 0e 00 01 00 00 00 0e 01 01 04 08 00 01 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 02 00 04 02 f7 @@ -1240,13 +1228,13 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) case 0x49: { // effect block state - //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&ProcessingBuffer[read_index], write_index - read_index, ESP_LOG_INFO); - uint8_t effect_block = (ProcessingBuffer[read_index] << 4) | ProcessingBuffer[read_index + 1]; + //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); + uint8_t effect_block = (buffer[read_index] << 4) | buffer[read_index + 1]; read_index += 2; // skip to status byte read_index += 7; - uint8_t state = ProcessingBuffer[read_index]; + uint8_t state = buffer[read_index]; ESP_LOGI(TAG, "Got effect block state %d %d", effect_block, state); } break; @@ -1254,7 +1242,7 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) case 0x50: { // unknown - ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&ProcessingBuffer[read_index], write_index - read_index, ESP_LOG_INFO); + ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); ESP_LOGI(TAG, "Got unknown 0x50"); @@ -1273,7 +1261,7 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) default: { ESP_LOGI(TAG, "Unknown function type %X", function); - ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)ProcessingBuffer, 16, ESP_LOG_WARN); + ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)buffer, 16, ESP_LOG_WARN); } break; } @@ -1335,7 +1323,7 @@ static void usb_valeton_gp5_request_preset_params(void) * RETURN: * NOTES: *****************************************************************************/ -static void usb_valeton_gp5_request_unknown(void) +static void __attribute__((unused)) usb_valeton_gp5_request_unknown(void) { uint8_t midi_tx[] = {0x01, 0x00}; @@ -1351,7 +1339,7 @@ static void usb_valeton_gp5_request_unknown(void) * RETURN: * NOTES: *****************************************************************************/ -static void usb_valeton_gp5_request_unknown_2(void) +static void __attribute__((unused)) usb_valeton_gp5_request_unknown_2(void) { uint8_t midi_tx[] = {0x05, 0x00}; @@ -1367,7 +1355,7 @@ static void usb_valeton_gp5_request_unknown_2(void) * RETURN: * NOTES: *****************************************************************************/ -static void usb_valeton_gp5_request_unknown_3(void) +static void __attribute__((unused)) usb_valeton_gp5_request_unknown_3(void) { uint8_t midi_tx[] = {0x04, 0x05}; @@ -1383,7 +1371,7 @@ static void usb_valeton_gp5_request_unknown_3(void) * RETURN: * NOTES: *****************************************************************************/ -static void usb_valeton_gp5_request_unknown_4(void) +static void __attribute__((unused)) usb_valeton_gp5_request_unknown_4(void) { uint8_t midi_tx[] = {0x02, 0x00}; @@ -1399,7 +1387,7 @@ static void usb_valeton_gp5_request_unknown_4(void) * RETURN: * NOTES: *****************************************************************************/ -static void usb_valeton_gp5_request_unknown_5(void) +static void __attribute__((unused)) usb_valeton_gp5_request_unknown_5(void) { uint8_t midi_tx[] = {0x02, 0x04}; @@ -1415,7 +1403,7 @@ static void usb_valeton_gp5_request_unknown_5(void) * RETURN: * NOTES: *****************************************************************************/ -static void usb_valeton_gp5_get_preset(uint8_t index) +static void __attribute__((unused)) usb_valeton_gp5_get_preset(uint8_t index) { uint8_t midi_tx[] = {0x04, 0x03, 0x00, 0x00, 0x00, 0x00}; @@ -1459,7 +1447,7 @@ static void usb_valeton_gp5_set_preset(uint8_t index) *****************************************************************************/ static void usb_valeton_gp5_set_effect_block_state(uint8_t block_index, uint8_t state) { - uint8_t midi_tx[] = {0x04, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + uint8_t midi_tx[] = {0x04, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; // set the block index midi_tx[2] = block_index >> 4; @@ -1517,10 +1505,17 @@ static void usb_valeton_gp5_set_effect_block_model_parameter(uint8_t block_index midi_tx[10] = parameter_index >> 4; midi_tx[11] = parameter_index & 0x0F; - // set parameter value - //todo - //midi_tx[xx] = - //midi_tx[xx] = + // set parameter value, big endian IEEE float value in nibbles + uint8_t float_bytes[4]; + memcpy((void*)float_bytes, (void*)&value, sizeof(value)); + + // break into 4 bit nibbles. + uint8_t index = 18; + for (uint8_t loop = 0; loop < 4; loop++) + { + midi_tx[index++] = float_bytes[loop] >> 4; + midi_tx[index++] = float_bytes[loop] & 0x0F; + } ESP_LOGI(TAG, "Set Effect Block model parameter %d %d %3.2f", block_index, parameter_index, value); @@ -1572,6 +1567,80 @@ static bool usb_valeton_gp5_handle_rx(const uint8_t* data, size_t data_len, void return false; } +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +static esp_err_t usb_valeton_gp5_send_single_parameter(uint16_t index, float value) +{ + esp_err_t res = ESP_FAIL; + tModellerParameter* param_ptr = NULL; + + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + uint8_t block = param_ptr[index].Data1; + uint8_t pedal = param_ptr[index].Data2; + uint8_t param = param_ptr[index].Data3; + + valeton_params_release_locked_access(); + + if (pedal == VALETON_BLOCK_SELECTION) + { + // pedal selection within block + usb_valeton_gp5_set_effect_block_model(block, (uint8_t)value); + } + else if (pedal == VALETON_BLOCK_ENABLE) + { + // block enable + usb_valeton_gp5_set_effect_block_state(block, (uint8_t)value); + } + else + { + // regular param, send it + usb_valeton_gp5_set_effect_block_model_parameter(block, param, value); + } + + res = ESP_OK; + } + + return res; +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +esp_err_t usb_valeton_gp5_modify_parameter(uint16_t index, float value) +{ + tModellerParameter* param_ptr = NULL; + esp_err_t res = ESP_FAIL; + + if (index >= VALETON_PARAM_LAST) + { + ESP_LOGE(TAG, "usb_valeton_gp5_modify_parameter invalid index %d", (int)index); + return ESP_FAIL; + } + + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + ESP_LOGI(TAG, "usb_valeton_gp5_modify_parameter index: %d name: %s value: %02f", (int)index, param_ptr[index].Name, value); + + // update the local copy + memcpy((void*)¶m_ptr[index].Value, (void*)&value, sizeof(float)); + + valeton_params_release_locked_access(); + res = ESP_OK; + } + + return res; +} + /**************************************************************************** * NAME: * DESCRIPTION: @@ -1665,10 +1734,15 @@ void usb_valeton_gp5_handle(class_driver_t* driver_obj) if (message.Payload < VALETON_PARAM_LAST) { // modify param + usb_valeton_gp5_modify_parameter(message.Payload, message.PayloadFloat); + + // send it + usb_valeton_gp5_send_single_parameter(message.Payload, message.PayloadFloat); } else if (message.Payload < VALETON_GLOBAL_LAST) { // modify the global + //todo } else { diff --git a/source/main/valeton_params.c b/source/main/valeton_params.c index 20e0fcf7..b79e602a 100644 --- a/source/main/valeton_params.c +++ b/source/main/valeton_params.c @@ -41,242 +41,245 @@ static SemaphoreHandle_t ParamMutex; //MODELLER_PARAM_TYPE_SWITCH // MODELLER_PARAM_TYPE_RANGE // "value" below is just a default, is overridden by the preset on load +// Data1 = block +// Data2 = pedal +// Data3 = param static tModellerParameter ValetonParameters[VALETON_GLOBAL_LAST] = { - //value, Min, Max, Name Type - {0, 0, 1, "NG EN", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_NR_ENABLE - {0, 0, 100, "NG THRESH", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_NR_THRESHOLD + //value, Min, Max, Name Type Data1 Data2 Data 3 + {0, 0, 1, "NG EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_NR, VALETON_BLOCK_ENABLE, 0}, //VALETON_PARAM_NR_ENABLE + {0, 0, 100, "NG THRESH", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NR, VALETON_EFFECT_NR_GATE, 0}, //VALETON_PARAM_NR_THRESHOLD - {0, 0, 1, "PRE EN", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_PRE_ENABLE, - {0, VALETON_EFFECT_PRE_COMP, VALETON_EFFECT_PRE_DETUNE, "PRE TP", MODELLER_PARAM_TYPE_SELECT}, //VALETON_PARAM_PRE_TYPE, - {0, 0, 100, "PRE COS", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_COMP_SUSTAIN, - {0, 0, 100, "PRE COV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_COMP_VOL, - {0, 0, 100, "PRE C4S", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_COMP4_SUSTAIN, - {0, 0, 100, "PRE C4A", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_COMP4_ATTACK, - {0, 0, 100, "PRE C4V", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_COMP4_VOL, - {0, 0, 100, "PRE C4C", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_COMP4_CLIP, - {0, 0, 100, "PRE BG", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_BOOST_GAIN, - {0, 0, 1, "PRE B3S", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_PRE_BOOST_3DB, - {0, 0, 1, "PRE BBR", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_PRE_BOOST_BRIGHT, - {0, 0, 100, "PRE MBG", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_MICRO_BOOST_GAIN, - {0, 0, 100, "PRE BBG", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_B_BOOST_GAIN, - {0, 0, 100, "PRE BBV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_B_BOOST_VOL, - {0, 0, 100, "PRE BBB", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_B_BOOST_BASS, - {0, 0, 100, "PRE BBT", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_B_BOOST_TREBLE, - {0, 0, 100, "PRE TOS", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_TOUCHER_SENSE, - {0, 0, 100, "PRE TOR", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_TOUCHER_RANGE, - {0, 0, 100, "PRE TOQ", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_TOUCHER_Q, - {0, 0, 100, "PRE TOM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_TOUCHER_MIX, - {0, 0, 1, "PRE TOO", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_PRE_TOUCHER_MODE - {0, 0, 100, "PRE CRD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_CRIER_DEPTH, - {0, 0, 100, "PRE CRR", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_CRIER_RATE, - {0, 0, 100, "PRE CRV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_CRIER_VOL, - {0, 0, 100, "PRE CRL", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_CRIER_LOW, - {0, 0, 100, "PRE CRQ", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_CRIER_Q, - {0, 0, 100, "PRE OCL", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_OCTA_LOW, - {0, 0, 100, "PRE OCH", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_OCTA_HIGH, - {0, 0, 100, "PRE OCD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_OCTA_DRY, - {0, 0, 100, "PRE PIH", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_PITCH_HIGH, - {0, 0, 100, "PRE PIL", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_PITCH_LOW, - {0, 0, 100, "PRE PID", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_PITCH_DRY, - {0, 0, 100, "PRE PIHV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_PITCH_H_VOL, - {0, 0, 100, "PRE PILV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_PITCH_L_VOL, - {0, -50, 50, "PRE DED", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_DETUNE_DETUNE, - {0, 0, 100, "PRE DEW", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_DETUNE_WET, - {0, 0, 100, "PRE DER", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_PRE_DETUNE_DRY, + {0, 0, 1, "PRE EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_PRE, VALETON_BLOCK_ENABLE, 0}, //VALETON_PARAM_PRE_ENABLE, + {0, VALETON_EFFECT_PRE_COMP, VALETON_EFFECT_PRE_DETUNE, "PRE TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_PRE, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_PRE_TYPE, + {0, 0, 100, "PRE COS", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_COMP, 0}, //VALETON_PARAM_PRE_COMP_SUSTAIN, + {0, 0, 100, "PRE COV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_COMP, 1}, //VALETON_PARAM_PRE_COMP_VOL, + {0, 0, 100, "PRE C4S", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_COMP4, 0}, //VALETON_PARAM_PRE_COMP4_SUSTAIN, + {0, 0, 100, "PRE C4A", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_COMP4, 1}, //VALETON_PARAM_PRE_COMP4_ATTACK, + {0, 0, 100, "PRE C4V", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_COMP4, 2}, //VALETON_PARAM_PRE_COMP4_VOL, + {0, 0, 100, "PRE C4C", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_COMP4, 3}, //VALETON_PARAM_PRE_COMP4_CLIP, + {0, 0, 100, "PRE BG", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_BOOST, 0}, //VALETON_PARAM_PRE_BOOST_GAIN, + {0, 0, 1, "PRE B3S", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_BOOST, 1}, //VALETON_PARAM_PRE_BOOST_3DB, + {0, 0, 1, "PRE BBR", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_BOOST, 2}, //VALETON_PARAM_PRE_BOOST_BRIGHT, + {0, 0, 100, "PRE MBG", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_MICRO_BOOST, 0}, //VALETON_PARAM_PRE_MICRO_BOOST_GAIN, + {0, 0, 100, "PRE BBG", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_B_BOOST, 0}, //VALETON_PARAM_PRE_B_BOOST_GAIN, + {0, 0, 100, "PRE BBV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_B_BOOST, 1}, //VALETON_PARAM_PRE_B_BOOST_VOL, + {0, 0, 100, "PRE BBB", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_B_BOOST, 2}, //VALETON_PARAM_PRE_B_BOOST_BASS, + {0, 0, 100, "PRE BBT", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_B_BOOST, 3}, //VALETON_PARAM_PRE_B_BOOST_TREBLE, + {0, 0, 100, "PRE TOS", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_TOUCHER, 0}, //VALETON_PARAM_PRE_TOUCHER_SENSE, + {0, 0, 100, "PRE TOR", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_TOUCHER, 1}, //VALETON_PARAM_PRE_TOUCHER_RANGE, + {0, 0, 100, "PRE TOQ", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_TOUCHER, 2}, //VALETON_PARAM_PRE_TOUCHER_Q, + {0, 0, 100, "PRE TOM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_TOUCHER, 3}, //VALETON_PARAM_PRE_TOUCHER_MIX, + {0, 0, 1, "PRE TOO", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_TOUCHER, 4}, //VALETON_PARAM_PRE_TOUCHER_MODE + {0, 0, 100, "PRE CRD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_CRIER, 0}, //VALETON_PARAM_PRE_CRIER_DEPTH, + {0, 0, 100, "PRE CRR", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_CRIER, 1}, //VALETON_PARAM_PRE_CRIER_RATE, + {0, 0, 100, "PRE CRV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_CRIER, 2}, //VALETON_PARAM_PRE_CRIER_VOL, + {0, 0, 100, "PRE CRL", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_CRIER, 3}, //VALETON_PARAM_PRE_CRIER_LOW, + {0, 0, 100, "PRE CRQ", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_CRIER, 4}, //VALETON_PARAM_PRE_CRIER_Q, + {0, 0, 100, "PRE OCL", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_OCTA, 0}, //VALETON_PARAM_PRE_OCTA_LOW, + {0, 0, 100, "PRE OCH", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_OCTA, 1}, //VALETON_PARAM_PRE_OCTA_HIGH, + {0, 0, 100, "PRE OCD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_OCTA, 2}, //VALETON_PARAM_PRE_OCTA_DRY, + {0, 0, 100, "PRE PIH", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_PITCH, 0}, //VALETON_PARAM_PRE_PITCH_HIGH, + {0, 0, 100, "PRE PIL", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_PITCH, 1}, //VALETON_PARAM_PRE_PITCH_LOW, + {0, 0, 100, "PRE PID", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_PITCH, 2}, //VALETON_PARAM_PRE_PITCH_DRY, + {0, 0, 100, "PRE PIHV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_PITCH, 3}, //VALETON_PARAM_PRE_PITCH_H_VOL, + {0, 0, 100, "PRE PILV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_PITCH, 4}, //VALETON_PARAM_PRE_PITCH_L_VOL, + {0, -50, 50, "PRE DED", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_DETUNE, 0}, //VALETON_PARAM_PRE_DETUNE_DETUNE, + {0, 0, 100, "PRE DEW", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_DETUNE, 1}, //VALETON_PARAM_PRE_DETUNE_WET, + {0, 0, 100, "PRE DER", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_DETUNE, 2}, //VALETON_PARAM_PRE_DETUNE_DRY, - {0, 0, 1, "DST EN", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_DIST_ENABLE, - {0, VALETON_EFFECT_DIST_GREEN_OD,VALETON_EFFECT_DIST_BASS_OD,"DST TP", MODELLER_PARAM_TYPE_SELECT}, //VALETON_PARAM_DIST_TYPE - {0, 0, 100, "DST GRG", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_GREEN_OD_GAIN, - {0, 0, 100, "DST GRT", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_GREEN_OD_TONE, - {0, 0, 100, "DST GRV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_GREEN_OD_VOL, - {0, 0, 100, "DST YEG", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_YELLOW_OD_GAIN, - {0, 0, 100, "DST YEV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_YELLOW_OD_VOL, - {0, 0, 100, "DST SUG", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_SUPER_OD_GAIN, - {0, 0, 100, "DST SUT", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_SUPER_OD_TONE, - {0, 0, 100, "DST SUV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_SUPER_OD_VOL, - {0, 0, 100, "DST SMG", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_SM_DIST_GAIN, - {0, 0, 100, "DST SMT", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_SM_DIST_TONE, - {0, 0, 100, "DST SMV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_SM_DIST_VOL, - {0, 0, 100, "DST PLG", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_PLUSTORTION_GAIN, - {0, 0, 100, "DST PLV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_PLUSTORTION_VOL, - {0, 0, 100, "DST LAG", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_LA_CHARGER_GAIN, - {0, 0, 100, "DST LAT", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_LA_CHARGER_TONE, - {0, 0, 100, "DST LAV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_LA_CHARGER_VOL, - {0, 0, 100, "DST DKG", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_DARKTALE_GAIN, - {0, 0, 100, "DST DKF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_DARKTALE_FILTER, - {0, 0, 100, "DST DKV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_DARKTALE_VOL, - {0, 0, 100, "DST SOF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_SORA_FUZZ_FUZZ, - {0, 0, 100, "DST SOV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_SORA_FUZZ_VOL, - {0, 0, 100, "DST RHF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_RED_HAZE_FUZZ, - {0, 0, 100, "DST RHV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_RED_HAZE_VOL, - {0, 0, 100, "DST BOG", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_BASS_OD_GAIN, - {0, 0, 100, "DST BOB", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_BASS_OD_BLEND, - {0, 0, 100, "DST BOV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_BASS_OD_VOL, - {0, 0, 100, "DST BOA", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_BASS_OD_BASS, - {0, 0, 100, "DST BOT", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DIST_BASS_OD_TREBLE, - - {0, 0, 1, "EQ EN", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_EQ_ENABLE, - {0, VALETON_EFFECT_EQ_GUITAR_EQ1, VALETON_EFFECT_EQ_MESS_EQ,"EQ TP", MODELLER_PARAM_TYPE_SELECT}, //VALETON_PARAM_EQ_TYPE - {0, 0, 100, "EQ G11", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_GUITAR_EQ1_125HZ, - {0, 0, 100, "EQ G14", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_GUITAR_EQ1_400HZ, - {0, 0, 100, "EQ G18", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_GUITAR_EQ1_800HZ, - {0, 0, 100, "EQ G16", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_GUITAR_EQ1_1600HZ, - {0, 0, 100, "EQ G10", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_GUITAR_EQ1_4000HZ, - {0, 0, 100, "EQ G1V", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_GUITAR_EQ1_VOL, - {0, 0, 100, "EQ G21", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_GUITAR_EQ2_100HZ, - {0, 0, 100, "EQ G25", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_GUITAR_EQ2_500HZ, - {0, 0, 100, "EQ G20", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_GUITAR_EQ2_1000HZ, - {0, 0, 100, "EQ G23", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_GUITAR_EQ2_3000HZ, - {0, 0, 100, "EQ G26", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_GUITAR_EQ2_6000HZ, - {0, 0, 100, "EQ G2V", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_GUITAR_EQ2_VOL, - {0, 0, 100, "EQ B13", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_BASS_EQ1_33HZ, - {0, 0, 100, "EQ B11", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_BASS_EQ1_150HZ, - {0, 0, 100, "EQ B16", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_BASS_EQ1_600HZ, - {0, 0, 100, "EQ B12", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_BASS_EQ1_2000HZ, - {0, 0, 100, "EQ B18", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_BASS_EQ1_8000HZ, - {0, 0, 100, "EQ B1V", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_BASS_EQ1_VOL, - {0, 0, 100, "EQ B25", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_BASS_EQ2_50HZ, - {0, 0, 100, "EQ B21", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_BASS_EQ2_120HZ, - {0, 0, 100, "EQ B24", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_BASS_EQ2_400HZ, - {0, 0, 100, "EQ B28", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_BASS_EQ2_800HZ, - {0, 0, 100, "EQ B25", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_BASS_EQ2_4500HZ, - {0, 0, 100, "EQ B2V", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_BASS_EQ2_VOL, - {0, 0, 100, "EQ ME8", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_MESS_EQ_80HZ, - {0, 0, 100, "EQ ME2", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_MESS_EQ_240HZ, - {0, 0, 100, "EQ ME7", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_MESS_EQ_750HZ, - {0, 0, 100, "EQ ME0", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_MESS_EQ_2200HZ, - {0, 0, 100, "EQ ME6", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_EQ_MESS_EQ_6600HZ, - - {0, 0, 1, "MOD EN", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_PARAM_MOD_ENABLE, - {0, VALETON_EFFECT_MOD_A_CHORUS, VALETON_EFFECT_MOD_BIAS_TREM,"MOD TP", MODELLER_PARAM_TYPE_SELECT}, //VALETON_PARAM_MOD_TYPE, - {0, 0, 100, "MOD ACD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_A_CHORUS_DEPTH, - {0, 0, 10, "MOD ACR", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_A_CHORUS_RATE, - {0, 0, 100, "MOD ACT", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_A_CHORUS_TONE, - {0, 0, 100, "MOD BCD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_B_CHORUS_DEPTH, - {0, 0, 10, "MOD BCR", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_B_CHORUS_RATE, - {0, 0, 100, "MOD BCV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_B_CHORUS_VOL, - {0, 0, 100, "MOD JED", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_JET_DEPTH, - {0, 0, 10, "MOD JER", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_JET_RATE, - {0, 0, 100, "MOD JEP", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_JET_PDELAY, - {0, 0, 100, "MOD JEF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_JET_FBACK, - {0, 0, 100, "MOD NJD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_N_JET_DEPTH, - {0, 0, 10, "MOD NJR", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_N_JET_RATE, - {0, 0, 100, "MOD NJP", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_N_JET_PDELAY, - {0, 0, 100, "MOD NJF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_N_JET_FBACK, - {0, 0, 10, "MOD OPR", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_O_PHASE_RATE, - {0, 0, 100, "MOD MVD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_M_VIBE_DEPTH, - {0, 0, 10, "MOD MVR", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_M_VIBE_RATE, - {0, 0, 100, "MOD VRD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_V_ROTO_DEPTH, - {0, 0, 10, "MOD VRR", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_V_ROTO_RATE, - {0, 0, 100, "MOD VID", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_VIBRATO_DEPTH, - {0, 0, 10, "MOD VIR", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_VIBRATO_RATE, - {0, 0, 100, "MOD VIV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_VIBRATO_VOL, - {0, 0, 100, "MOD OTD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_OD_O_TREM_DEPTH, - {0, 0, 10, "MOD OTR", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_OD_O_TREM_RATE, - {0, 0, 100, "MOD SID", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_SINE_TREM_DEPTH, - {0, 0, 10, "MOD SIR", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_SINE_TREM_RATE, - {0, 0, 100, "MOD SIV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_MOD_SINE_TREM_VOL, - {0, 0, 100, "MOD ODD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_OD_BIAS_TREM_DEPTH, - {0, 0, 10, "MOD ODR", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_OD_BIAS_TREM_RATE, - {0, 0, 100, "MOD ODV", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_OD_BIAS_TREM_VOL, - {0, 0, 100, "MOD ODB", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_OD_BIAS_TREM_BIAS, - - {0, 0, 1, "DLY EN", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_PARAM_DLY_ENABLE, - {0, VALETON_EFFECT_DLY_PURE, VALETON_EFFECT_DLY_PING_PONG,"DL TP", MODELLER_PARAM_TYPE_SELECT}, //VALETON_PARAM_DLY_TYPE, - {0, 0, 100, "DLY PUM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_PURE_MIX, - {0, 0, 1000, "DLY PUT", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_PURE_TIME, - {0, 0, 100, "DLY PUF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_PURE_FEEDBACK, - {0, 0, 1, "DLY PUT", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_PARAM_DLY_PURE_TRAIL, - {0, 0, 100, "DLY ANM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_ANALOG_MIX, - {0, 0, 1000, "DLY ANT", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_ANALOG_TIME, - {0, 0, 100, "DLY ANF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_ANALOG_FEEDBACK, - {0, 0, 1, "DLY ANT", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_PARAM_DLY_ANALOG_TRAIL, - {0, 0, 100, "DLY SLM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_SLAPBACK_MIX, - {0, 0, 1000, "DLY SLT", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_SLAPBACK_TIME, - {0, 0, 100, "DLY SLF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_SLAPBACK_FEEDBACK, - {0, 0, 1, "DLY STT", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_PARAM_DLY_SLAPBACK_TRAIL, - {0, 0, 100, "DLY SEM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_SWEET_ECHO_MIX, - {0, 0, 1000, "DLY SET", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_SWEET_ECHO_TIME, - {0, 0, 100, "DLY SEF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_SWEET_ECHO_FEEDBACK, - {0, 0, 1, "DLY SET", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_PARAM_DLY_SWEET_ECHO_TRAIL, - {0, 0, 100, "DLY TPM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_TAPE_MIX, - {0, 0, 1000, "DLY TPT", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_TAPE_TIME, - {0, 0, 100, "DLY TPF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_TAPE_FEEDBACK, - {0, 0, 1, "DLY TPT", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_PARAM_DLY_TAPE_TRAIL, - {0, 0, 100, "DLY TUM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_TUBE_MIX, - {0, 0, 1000, "DLY TUT", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_TUBE_TIME, - {0, 0, 100, "DLY TUF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_TUBE_FEEDBACK, - {0, 0, 1, "DLY TUT", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_PARAM_DLY_TUBE_TRAIL, - {0, 0, 100, "DLY ECM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_REV_ECHO_MIX, - {0, 0, 1000, "DLY ECT", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_REV_ECHO_TIME, - {0, 0, 100, "DLY ECF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_REV_ECHO_FEEDBACK, - {0, 0, 1, "DLY ECT", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_PARAM_DLY_REV_ECHO_TRAIL, - {0, 0, 100, "DLY REM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_RING_ECHO_MIX, - {0, 0, 1000, "DLY REI", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_RING_ECHO_TIME, - {0, 0, 100, "DLY REF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_RING_ECHO_FEEDBACK, - {0, 0, 100, "DLY REM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_RING_ECHO_R_MIX, - {0, 0, 100, "DLY REF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_RING_ECHO_FREQ, - {0, 0, 100, "DLY REN", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_RING_ECHO_TONE, - {0, 0, 1, "DLY RET", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_PARAM_DLY_RING_ECHO_TRAIL, - {0, 0, 100, "DLY SEM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_SWEEP_ECHO_MIX, - {0, 0, 1000, "DLY SET", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_SWEEP_ECHO_TIME, - {0, 0, 100, "DLY SEF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_SWEEP_ECHO_FBACK, - {0, 0, 100, "DLY SES", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_SWEEP_ECHO_S_DEPTH, - {0, 0, 100, "DLY SER", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_SWEEP_ECHO_S_RATE, - {0, 0, 1, "DLY SET", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_PARAM_DLY_SWEEP_ECHO_TRAIL, - {0, 0, 100, "DLY PPM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_PING_PONG_MIX, - {0, 0, 1000, "DLY PPI", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_PING_PONG_TIME, - {0, 0, 100, "DLY PPF", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_DLY_PING_PONG_FEEDBACK, - {0, 0, 1, "DLY PPT", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_PARAM_DLY_PING_PONG_TRAIL, - - {0, 0, 1, "RVB EN", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_PARAM_RVB_ENABLE, - {0, VALETON_EFFECT_RVB_AIR, VALETON_EFFECT_RVB_SWEET_SPACE, "RVB TP", MODELLER_PARAM_TYPE_SELECT}, //VALETON_PARAM_RVB_TYPE, - {0, 0, 100, "RVB AIM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_AIR_MIX, - {0, 0, 100, "RVB AID", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_AIR_DECAY, - {0, 0, 100, "RVB AID", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_AIR_DAMP, - {0, 0, 1, "RVB AIT", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_RVB_AIR_TRAIL, - {0, 0, 100, "RVB RMT", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_ROOM_MIX, - {0, 0, 100, "RVB RMD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_ROOM_DECAY, - {0, 0, 1, "RVB RMT", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_RVB_ROOM_TRAIL, - {0, 0, 100, "RVB HAM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_HALL_MIX, - {0, 0, 100, "RVB HAD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_HALL_DECAY, - {0, 0, 1, "RVB HAT", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_RVB_HALL_TRAIL, - {0, 0, 100, "RVB CHM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_CHURCH_MIX, - {0, 0, 100, "RVB CHD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_CHURCH_DECAY, - {0, 0, 1, "RVB CHT", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_RVB_CHURCH_TRAIL, - {0, 0, 100, "RVB P1M", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_PLATE_L_MIX, - {0, 0, 100, "RVB P1D", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_PLATE_L_DECAY, - {0, 0, 1, "RVB P1T", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_RVB_PLATE_L_TRAIL, - {0, 0, 100, "RVB PLM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_PLATE_MIX, - {0, 0, 100, "RVB PLD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_PLATE_DECAY, - {0, 0, 100, "RVB PLR", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_PLATE_DAMP, - {0, 0, 1, "RVB PLT", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_RVB_PLATE_TRAIL, - {0, 0, 100, "RVB SPM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_SPRING_MIX, - {0, 0, 100, "RVB SPD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_SPRING_DECAY, - {0, 0, 1, "RVB ST", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_RVB_SPRING_TRAIL, - {0, 0, 100, "RVB NSM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_N_STAR_MIX, - {0, 0, 100, "RVB NSD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_N_STAR_DECAY, - {0, 0, 1, "RVB NST", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_RVB_N_STAR_TRAIL, - {0, 0, 100, "RVB DSM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_DEEPSEA_MIX, - {0, 0, 100, "RVB DSD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_DEEPSEA_DECAY, - {0, 0, 1, "RVB DST", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_RVB_DEEPSEA_TRAIL, - {0, 0, 100, "RVB SPM", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_SWEET_SPACE_MIX, - {0, 0, 100, "RVB SPD", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_SWEET_SPACE_DECAY, - {0, 0, 100, "RVB SPA", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_SWEET_SPACE_DAMP, - {0, 0, 100, "RVB SPO", MODELLER_PARAM_TYPE_RANGE}, //VALETON_PARAM_RVB_SWEET_SPACE_MOD, - {0, 0, 1, "RVB SPT", MODELLER_PARAM_TYPE_SWITCH}, //VALETON_PARAM_RVB_SWEET_SPACE_TRAIL, + {0, 0, 1, "DST EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_DST, VALETON_BLOCK_ENABLE, 0}, //VALETON_PARAM_DIST_ENABLE, + {0, VALETON_EFFECT_DIST_GREEN_OD,VALETON_EFFECT_DIST_BASS_OD,"DST TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_DST, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_DIST_TYPE + {0, 0, 100, "DST GRG", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_GREEN_OD, 0}, //VALETON_PARAM_DIST_GREEN_OD_GAIN, + {0, 0, 100, "DST GRT", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_GREEN_OD, 1}, //VALETON_PARAM_DIST_GREEN_OD_TONE, + {0, 0, 100, "DST GRV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_GREEN_OD, 2}, //VALETON_PARAM_DIST_GREEN_OD_VOL, + {0, 0, 100, "DST YEG", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_YELLOW_OD, 0}, //VALETON_PARAM_DIST_YELLOW_OD_GAIN, + {0, 0, 100, "DST YEV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_YELLOW_OD, 1}, //VALETON_PARAM_DIST_YELLOW_OD_VOL, + {0, 0, 100, "DST SUG", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_SUPER_OD, 0}, //VALETON_PARAM_DIST_SUPER_OD_GAIN, + {0, 0, 100, "DST SUT", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_SUPER_OD, 1}, //VALETON_PARAM_DIST_SUPER_OD_TONE, + {0, 0, 100, "DST SUV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_SUPER_OD, 2}, //VALETON_PARAM_DIST_SUPER_OD_VOL, + {0, 0, 100, "DST SMG", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_SM_DIST, 0}, //VALETON_PARAM_DIST_SM_DIST_GAIN, + {0, 0, 100, "DST SMT", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_SM_DIST, 1}, //VALETON_PARAM_DIST_SM_DIST_TONE, + {0, 0, 100, "DST SMV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_SM_DIST, 2}, //VALETON_PARAM_DIST_SM_DIST_VOL, + {0, 0, 100, "DST PLG", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_PLUSTORTION, 0}, //VALETON_PARAM_DIST_PLUSTORTION_GAIN, + {0, 0, 100, "DST PLV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_PLUSTORTION, 1}, //VALETON_PARAM_DIST_PLUSTORTION_VOL, + {0, 0, 100, "DST LAG", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_LA_CHARGER, 0}, //VALETON_PARAM_DIST_LA_CHARGER_GAIN, + {0, 0, 100, "DST LAT", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_LA_CHARGER, 1}, //VALETON_PARAM_DIST_LA_CHARGER_TONE, + {0, 0, 100, "DST LAV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_LA_CHARGER, 2}, //VALETON_PARAM_DIST_LA_CHARGER_VOL, + {0, 0, 100, "DST DKG", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_DARKTALE, 0}, //VALETON_PARAM_DIST_DARKTALE_GAIN, + {0, 0, 100, "DST DKF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_DARKTALE, 1}, //VALETON_PARAM_DIST_DARKTALE_FILTER, + {0, 0, 100, "DST DKV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_DARKTALE, 2}, //VALETON_PARAM_DIST_DARKTALE_VOL, + {0, 0, 100, "DST SOF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_SORA_FUZZ, 0}, //VALETON_PARAM_DIST_SORA_FUZZ_FUZZ, + {0, 0, 100, "DST SOV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_SORA_FUZZ, 1}, //VALETON_PARAM_DIST_SORA_FUZZ_VOL, + {0, 0, 100, "DST RHF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_RED_HAZE, 0}, //VALETON_PARAM_DIST_RED_HAZE_FUZZ, + {0, 0, 100, "DST RHV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_RED_HAZE, 1}, //VALETON_PARAM_DIST_RED_HAZE_VOL, + {0, 0, 100, "DST BOG", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_BASS_OD, 0}, //VALETON_PARAM_DIST_BASS_OD_GAIN, + {0, 0, 100, "DST BOB", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_BASS_OD, 1}, //VALETON_PARAM_DIST_BASS_OD_BLEND, + {0, 0, 100, "DST BOV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_BASS_OD, 2}, //VALETON_PARAM_DIST_BASS_OD_VOL, + {0, 0, 100, "DST BOA", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_BASS_OD, 3}, //VALETON_PARAM_DIST_BASS_OD_BASS, + {0, 0, 100, "DST BOT", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_BASS_OD, 4}, //VALETON_PARAM_DIST_BASS_OD_TREBLE, + + {0, 0, 1, "EQ EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_EQ, VALETON_BLOCK_ENABLE, 0}, //VALETON_PARAM_EQ_ENABLE, + {0, VALETON_EFFECT_EQ_GUITAR_EQ1, VALETON_EFFECT_EQ_MESS_EQ,"EQ TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_EQ, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_EQ_TYPE + {0, 0, 100, "EQ G11", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_GUITAR_EQ1, 0}, //VALETON_PARAM_EQ_GUITAR_EQ1_125HZ, + {0, 0, 100, "EQ G14", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_GUITAR_EQ1, 1}, //VALETON_PARAM_EQ_GUITAR_EQ1_400HZ, + {0, 0, 100, "EQ G18", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_GUITAR_EQ1, 2}, //VALETON_PARAM_EQ_GUITAR_EQ1_800HZ, + {0, 0, 100, "EQ G16", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_GUITAR_EQ1, 3}, //VALETON_PARAM_EQ_GUITAR_EQ1_1600HZ, + {0, 0, 100, "EQ G10", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_GUITAR_EQ1, 4}, //VALETON_PARAM_EQ_GUITAR_EQ1_4000HZ, + {0, 0, 100, "EQ G1V", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_GUITAR_EQ1, 5}, //VALETON_PARAM_EQ_GUITAR_EQ1_VOL, + {0, 0, 100, "EQ G21", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_GUITAR_EQ2, 0}, //VALETON_PARAM_EQ_GUITAR_EQ2_100HZ, + {0, 0, 100, "EQ G25", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_GUITAR_EQ2, 1}, //VALETON_PARAM_EQ_GUITAR_EQ2_500HZ, + {0, 0, 100, "EQ G20", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_GUITAR_EQ2, 2}, //VALETON_PARAM_EQ_GUITAR_EQ2_1000HZ, + {0, 0, 100, "EQ G23", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_GUITAR_EQ2, 3}, //VALETON_PARAM_EQ_GUITAR_EQ2_3000HZ, + {0, 0, 100, "EQ G26", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_GUITAR_EQ2, 4}, //VALETON_PARAM_EQ_GUITAR_EQ2_6000HZ, + {0, 0, 100, "EQ G2V", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_GUITAR_EQ2, 5}, //VALETON_PARAM_EQ_GUITAR_EQ2_VOL, + {0, 0, 100, "EQ B13", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_BASS_EQ1, 0}, //VALETON_PARAM_EQ_BASS_EQ1_33HZ, + {0, 0, 100, "EQ B11", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_BASS_EQ1, 1}, //VALETON_PARAM_EQ_BASS_EQ1_150HZ, + {0, 0, 100, "EQ B16", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_BASS_EQ1, 2}, //VALETON_PARAM_EQ_BASS_EQ1_600HZ, + {0, 0, 100, "EQ B12", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_BASS_EQ1, 3}, //VALETON_PARAM_EQ_BASS_EQ1_2000HZ, + {0, 0, 100, "EQ B18", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_BASS_EQ1, 4}, //VALETON_PARAM_EQ_BASS_EQ1_8000HZ, + {0, 0, 100, "EQ B1V", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_BASS_EQ1, 5}, //VALETON_PARAM_EQ_BASS_EQ1_VOL, + {0, 0, 100, "EQ B25", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_BASS_EQ2, 0}, //VALETON_PARAM_EQ_BASS_EQ2_50HZ, + {0, 0, 100, "EQ B21", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_BASS_EQ2, 1}, //VALETON_PARAM_EQ_BASS_EQ2_120HZ, + {0, 0, 100, "EQ B24", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_BASS_EQ2, 2}, //VALETON_PARAM_EQ_BASS_EQ2_400HZ, + {0, 0, 100, "EQ B28", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_BASS_EQ2, 3}, //VALETON_PARAM_EQ_BASS_EQ2_800HZ, + {0, 0, 100, "EQ B25", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_BASS_EQ2, 4}, //VALETON_PARAM_EQ_BASS_EQ2_4500HZ, + {0, 0, 100, "EQ B2V", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_BASS_EQ2, 5}, //VALETON_PARAM_EQ_BASS_EQ2_VOL, + {0, 0, 100, "EQ ME8", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_MESS_EQ, 0}, //VALETON_PARAM_EQ_MESS_EQ_80HZ, + {0, 0, 100, "EQ ME2", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_MESS_EQ, 1}, //VALETON_PARAM_EQ_MESS_EQ_240HZ, + {0, 0, 100, "EQ ME7", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_MESS_EQ, 2}, //VALETON_PARAM_EQ_MESS_EQ_750HZ, + {0, 0, 100, "EQ ME0", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_MESS_EQ, 3}, //VALETON_PARAM_EQ_MESS_EQ_2200HZ, + {0, 0, 100, "EQ ME6", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_MESS_EQ, 4}, //VALETON_PARAM_EQ_MESS_EQ_6600HZ, + + {0, 0, 1, "MOD EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_MOD, VALETON_BLOCK_ENABLE, 0}, // VALETON_PARAM_MOD_ENABLE, + {0, VALETON_EFFECT_MOD_A_CHORUS, VALETON_EFFECT_MOD_BIAS_TREM,"MOD TP", MODELLER_PARAM_TYPE_SELECT,VALETON_EFFECT_BLOCK_MOD, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_MOD_TYPE, + {0, 0, 100, "MOD ACD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_A_CHORUS, 0}, //VALETON_PARAM_MOD_A_CHORUS_DEPTH, + {0, 0, 10, "MOD ACR", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_A_CHORUS, 1}, //VALETON_PARAM_MOD_A_CHORUS_RATE, + {0, 0, 100, "MOD ACT", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_A_CHORUS, 2}, //VALETON_PARAM_MOD_A_CHORUS_TONE, + {0, 0, 100, "MOD BCD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_B_CHORUS, 0}, //VALETON_PARAM_MOD_B_CHORUS_DEPTH, + {0, 0, 10, "MOD BCR", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_B_CHORUS, 1}, //VALETON_PARAM_MOD_B_CHORUS_RATE, + {0, 0, 100, "MOD BCV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_B_CHORUS, 2}, //VALETON_PARAM_MOD_B_CHORUS_VOL, + {0, 0, 100, "MOD JED", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_JET, 0}, //VALETON_PARAM_MOD_JET_DEPTH, + {0, 0, 10, "MOD JER", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_JET, 1}, //VALETON_PARAM_MOD_JET_RATE, + {0, 0, 100, "MOD JEP", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_JET, 2}, //VALETON_PARAM_MOD_JET_PDELAY, + {0, 0, 100, "MOD JEF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_JET, 3}, //VALETON_PARAM_MOD_JET_FBACK, + {0, 0, 100, "MOD NJD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_N_JET, 0}, //VALETON_PARAM_MOD_N_JET_DEPTH, + {0, 0, 10, "MOD NJR", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_N_JET, 1}, //VALETON_PARAM_MOD_N_JET_RATE, + {0, 0, 100, "MOD NJP", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_N_JET, 2}, //VALETON_PARAM_MOD_N_JET_PDELAY, + {0, 0, 100, "MOD NJF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_N_JET, 3}, //VALETON_PARAM_MOD_N_JET_FBACK, + {0, 0, 10, "MOD OPR", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_O_PHASE, 0}, //VALETON_PARAM_MOD_O_PHASE_RATE, + {0, 0, 100, "MOD MVD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_M_VIBE, 0}, //VALETON_PARAM_MOD_M_VIBE_DEPTH, + {0, 0, 10, "MOD MVR", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_M_VIBE, 1}, //VALETON_PARAM_MOD_M_VIBE_RATE, + {0, 0, 100, "MOD VRD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_V_ROTO, 0}, //VALETON_PARAM_MOD_V_ROTO_DEPTH, + {0, 0, 10, "MOD VRR", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_V_ROTO, 1}, //VALETON_PARAM_MOD_V_ROTO_RATE, + {0, 0, 100, "MOD VID", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_VIBRATOR, 0}, //VALETON_PARAM_MOD_VIBRATO_DEPTH, + {0, 0, 10, "MOD VIR", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_VIBRATOR, 1}, //VALETON_PARAM_MOD_VIBRATO_RATE, + {0, 0, 100, "MOD VIV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_VIBRATOR, 2}, //VALETON_PARAM_MOD_VIBRATO_VOL, + {0, 0, 100, "MOD OTD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_O_TREM, 0}, //VALETON_PARAM_MOD_O_TREM_DEPTH, + {0, 0, 10, "MOD OTR", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_O_TREM, 1}, //VALETON_PARAM_MOD_O_TREM_RATE, + {0, 0, 100, "MOD SID", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_SINE_TREM, 0}, //VALETON_PARAM_MOD_SINE_TREM_DEPTH, + {0, 0, 10, "MOD SIR", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_SINE_TREM, 1}, //VALETON_PARAM_MOD_SINE_TREM_RATE, + {0, 0, 100, "MOD SIV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_SINE_TREM, 2}, //VALETON_PARAM_MOD_SINE_TREM_VOL, + {0, 0, 100, "MOD ODD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_BIAS_TREM, 0}, //VALETON_PARAM_MOD_BIAS_TREM_DEPTH, + {0, 0, 10, "MOD ODR", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_BIAS_TREM, 1}, //VALETON_PARAM_MOD_BIAS_TREM_RATE, + {0, 0, 100, "MOD ODV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_BIAS_TREM, 2}, //VALETON_PARAM_MOD_BIAS_TREM_VOL, + {0, 0, 100, "MOD ODB", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_BIAS_TREM, 3}, //VALETON_PARAM_MOD_BIAS_TREM_BIAS, + + {0, 0, 1, "DLY EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_DLY, VALETON_BLOCK_ENABLE, 0}, // VALETON_PARAM_DLY_ENABLE, + {0, VALETON_EFFECT_DLY_PURE, VALETON_EFFECT_DLY_PING_PONG,"DL TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_DLY, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_DLY_TYPE, + {0, 0, 100, "DLY PUM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_PURE, 0}, //VALETON_PARAM_DLY_PURE_MIX, + {0, 0, 1000, "DLY PUT", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_PURE, 1}, //VALETON_PARAM_DLY_PURE_TIME, + {0, 0, 100, "DLY PUF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_PURE, 2}, //VALETON_PARAM_DLY_PURE_FEEDBACK, + {0, 0, 1, "DLY PUT", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_PURE, 3}, // VALETON_PARAM_DLY_PURE_TRAIL, + {0, 0, 100, "DLY ANM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_ANALOG, 0}, //VALETON_PARAM_DLY_ANALOG_MIX, + {0, 0, 1000, "DLY ANT", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_ANALOG, 1}, //VALETON_PARAM_DLY_ANALOG_TIME, + {0, 0, 100, "DLY ANF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_ANALOG, 2}, //VALETON_PARAM_DLY_ANALOG_FEEDBACK, + {0, 0, 1, "DLY ANT", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_ANALOG, 3}, // VALETON_PARAM_DLY_ANALOG_TRAIL, + {0, 0, 100, "DLY SLM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_SLAPBACK, 0}, //VALETON_PARAM_DLY_SLAPBACK_MIX, + {0, 0, 1000, "DLY SLT", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_SLAPBACK, 1}, //VALETON_PARAM_DLY_SLAPBACK_TIME, + {0, 0, 100, "DLY SLF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_SLAPBACK, 2}, //VALETON_PARAM_DLY_SLAPBACK_FEEDBACK, + {0, 0, 1, "DLY STT", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_SLAPBACK, 3}, // VALETON_PARAM_DLY_SLAPBACK_TRAIL, + {0, 0, 100, "DLY SEM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_SWEET_ECHO, 0}, //VALETON_PARAM_DLY_SWEET_ECHO_MIX, + {0, 0, 1000, "DLY SET", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_SWEET_ECHO, 1}, //VALETON_PARAM_DLY_SWEET_ECHO_TIME, + {0, 0, 100, "DLY SEF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_SWEET_ECHO, 2}, //VALETON_PARAM_DLY_SWEET_ECHO_FEEDBACK, + {0, 0, 1, "DLY SET", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_SWEET_ECHO, 3}, // VALETON_PARAM_DLY_SWEET_ECHO_TRAIL, + {0, 0, 100, "DLY TPM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_TAPE, 0}, //VALETON_PARAM_DLY_TAPE_MIX, + {0, 0, 1000, "DLY TPT", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_TAPE, 1}, //VALETON_PARAM_DLY_TAPE_TIME, + {0, 0, 100, "DLY TPF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_TAPE, 2}, //VALETON_PARAM_DLY_TAPE_FEEDBACK, + {0, 0, 1, "DLY TPT", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_TAPE, 3}, // VALETON_PARAM_DLY_TAPE_TRAIL, + {0, 0, 100, "DLY TUM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_TUBE, 0}, //VALETON_PARAM_DLY_TUBE_MIX, + {0, 0, 1000, "DLY TUT", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_TUBE, 1}, //VALETON_PARAM_DLY_TUBE_TIME, + {0, 0, 100, "DLY TUF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_TUBE, 2}, //VALETON_PARAM_DLY_TUBE_FEEDBACK, + {0, 0, 1, "DLY TUT", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_TUBE, 3}, // VALETON_PARAM_DLY_TUBE_TRAIL, + {0, 0, 100, "DLY ECM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_REV_ECHO, 0}, //VALETON_PARAM_DLY_REV_ECHO_MIX, + {0, 0, 1000, "DLY ECT", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_REV_ECHO, 1}, //VALETON_PARAM_DLY_REV_ECHO_TIME, + {0, 0, 100, "DLY ECF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_REV_ECHO, 2}, //VALETON_PARAM_DLY_REV_ECHO_FEEDBACK, + {0, 0, 1, "DLY ECT", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_REV_ECHO, 3}, // VALETON_PARAM_DLY_REV_ECHO_TRAIL, + {0, 0, 100, "DLY REM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_RING_ECHO, 0}, //VALETON_PARAM_DLY_RING_ECHO_MIX, + {0, 0, 1000, "DLY REI", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_RING_ECHO, 1}, //VALETON_PARAM_DLY_RING_ECHO_TIME, + {0, 0, 100, "DLY REF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_RING_ECHO, 2}, //VALETON_PARAM_DLY_RING_ECHO_FEEDBACK, + {0, 0, 100, "DLY REM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_RING_ECHO, 3}, //VALETON_PARAM_DLY_RING_ECHO_R_MIX, + {0, 0, 100, "DLY REF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_RING_ECHO, 4}, //VALETON_PARAM_DLY_RING_ECHO_FREQ, + {0, 0, 100, "DLY REN", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_RING_ECHO, 5}, //VALETON_PARAM_DLY_RING_ECHO_TONE, + {0, 0, 1, "DLY RET", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_RING_ECHO, 6}, // VALETON_PARAM_DLY_RING_ECHO_TRAIL, + {0, 0, 100, "DLY SEM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_SWEEP_ECHO, 0}, //VALETON_PARAM_DLY_SWEEP_ECHO_MIX, + {0, 0, 1000, "DLY SET", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_SWEEP_ECHO, 1}, //VALETON_PARAM_DLY_SWEEP_ECHO_TIME, + {0, 0, 100, "DLY SEF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_SWEEP_ECHO, 2}, //VALETON_PARAM_DLY_SWEEP_ECHO_FBACK, + {0, 0, 100, "DLY SES", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_SWEEP_ECHO, 3}, //VALETON_PARAM_DLY_SWEEP_ECHO_S_DEPTH, + {0, 0, 100, "DLY SER", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_SWEEP_ECHO, 4}, //VALETON_PARAM_DLY_SWEEP_ECHO_S_RATE, + {0, 0, 1, "DLY SET", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_SWEEP_ECHO, 5}, // VALETON_PARAM_DLY_SWEEP_ECHO_TRAIL, + {0, 0, 100, "DLY PPM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_PING_PONG, 0}, //VALETON_PARAM_DLY_PING_PONG_MIX, + {0, 0, 1000, "DLY PPI", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_PING_PONG, 1}, //VALETON_PARAM_DLY_PING_PONG_TIME, + {0, 0, 100, "DLY PPF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_PING_PONG, 2}, //VALETON_PARAM_DLY_PING_PONG_FEEDBACK, + {0, 0, 1, "DLY PPT", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_PING_PONG, 3}, // VALETON_PARAM_DLY_PING_PONG_TRAIL, + + {0, 0, 1, "RVB EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_RVB, VALETON_BLOCK_ENABLE, 0}, // VALETON_PARAM_RVB_ENABLE, + {0, VALETON_EFFECT_RVB_AIR, VALETON_EFFECT_RVB_SWEET_SPACE, "RVB TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_RVB, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_RVB_TYPE, + {0, 0, 100, "RVB AIM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_AIR, 0}, //VALETON_PARAM_RVB_AIR_MIX, + {0, 0, 100, "RVB AID", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_AIR, 1}, //VALETON_PARAM_RVB_AIR_DECAY, + {0, 0, 100, "RVB AID", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_AIR, 2}, //VALETON_PARAM_RVB_AIR_DAMP, + {0, 0, 1, "RVB AIT", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_AIR, 3}, //VALETON_PARAM_RVB_AIR_TRAIL, + {0, 0, 100, "RVB RMT", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_ROOM, 0}, //VALETON_PARAM_RVB_ROOM_MIX, + {0, 0, 100, "RVB RMD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_ROOM, 1}, //VALETON_PARAM_RVB_ROOM_DECAY, + {0, 0, 1, "RVB RMT", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_ROOM, 2}, //VALETON_PARAM_RVB_ROOM_TRAIL, + {0, 0, 100, "RVB HAM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_HALL, 0}, //VALETON_PARAM_RVB_HALL_MIX, + {0, 0, 100, "RVB HAD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_HALL, 1}, //VALETON_PARAM_RVB_HALL_DECAY, + {0, 0, 1, "RVB HAT", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_HALL, 2}, //VALETON_PARAM_RVB_HALL_TRAIL, + {0, 0, 100, "RVB CHM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_CHURCH, 0}, //VALETON_PARAM_RVB_CHURCH_MIX, + {0, 0, 100, "RVB CHD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_CHURCH, 1}, //VALETON_PARAM_RVB_CHURCH_DECAY, + {0, 0, 1, "RVB CHT", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_CHURCH, 2}, //VALETON_PARAM_RVB_CHURCH_TRAIL, + {0, 0, 100, "RVB P1M", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_PLATE_L, 0}, //VALETON_PARAM_RVB_PLATE_L_MIX, + {0, 0, 100, "RVB P1D", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_PLATE_L, 1}, //VALETON_PARAM_RVB_PLATE_L_DECAY, + {0, 0, 1, "RVB P1T", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_PLATE_L,2}, //VALETON_PARAM_RVB_PLATE_L_TRAIL, + {0, 0, 100, "RVB PLM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_PLATE, 3}, //VALETON_PARAM_RVB_PLATE_MIX, + {0, 0, 100, "RVB PLD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_PLATE, 4}, //VALETON_PARAM_RVB_PLATE_DECAY, + {0, 0, 100, "RVB PLR", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_PLATE, 5}, //VALETON_PARAM_RVB_PLATE_DAMP, + {0, 0, 1, "RVB PLT", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_PLATE, 6}, //VALETON_PARAM_RVB_PLATE_TRAIL, + {0, 0, 100, "RVB SPM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_SPRING, 0}, //VALETON_PARAM_RVB_SPRING_MIX, + {0, 0, 100, "RVB SPD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_SPRING, 1}, //VALETON_PARAM_RVB_SPRING_DECAY, + {0, 0, 1, "RVB ST", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_SPRING, 2}, //VALETON_PARAM_RVB_SPRING_TRAIL, + {0, 0, 100, "RVB NSM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_N_STAR, 0}, //VALETON_PARAM_RVB_N_STAR_MIX, + {0, 0, 100, "RVB NSD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_N_STAR, 1}, //VALETON_PARAM_RVB_N_STAR_DECAY, + {0, 0, 1, "RVB NST", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_N_STAR, 2}, //VALETON_PARAM_RVB_N_STAR_TRAIL, + {0, 0, 100, "RVB DSM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_DEEPSEA, 0}, //VALETON_PARAM_RVB_DEEPSEA_MIX, + {0, 0, 100, "RVB DSD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_DEEPSEA, 1}, //VALETON_PARAM_RVB_DEEPSEA_DECAY, + {0, 0, 1, "RVB DST", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_DEEPSEA, 2}, //VALETON_PARAM_RVB_DEEPSEA_TRAIL, + {0, 0, 100, "RVB SPM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_SWEET_SPACE, 0}, //VALETON_PARAM_RVB_SWEET_SPACE_MIX, + {0, 0, 100, "RVB SPD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_SWEET_SPACE, 1}, //VALETON_PARAM_RVB_SWEET_SPACE_DECAY, + {0, 0, 100, "RVB SPA", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_SWEET_SPACE, 2}, //VALETON_PARAM_RVB_SWEET_SPACE_DAMP, + {0, 0, 100, "RVB SPO", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_SWEET_SPACE, 3}, //VALETON_PARAM_RVB_SWEET_SPACE_MOD, + {0, 0, 1, "RVB SPT", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_SWEET_SPACE, 4}, //VALETON_PARAM_RVB_SWEET_SPACE_TRAIL, // dummy end of params marker - {0, 0, 0, "LAST", MODELLER_PARAM_TYPE_RANGE}, // TONEX_PARAM_LAST, + {0, 0, 0, "LAST", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_LAST, //************* Global params ***************** - {80, 40, 240, "BPM", MODELLER_PARAM_TYPE_RANGE}, // VALETON_GLOBAL_BPM - {0, -15, 15, "TRIM", MODELLER_PARAM_TYPE_RANGE}, // VALETON_GLOBAL_INPUT_TRIM - {0, 0, 1, "CABSIM", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_GLOBAL_CABSIM_BYPASS - {440, 415, 465, "TUNEREF", MODELLER_PARAM_TYPE_RANGE}, // VALETON_GLOBAL_TUNING_REFERENCE - {0, 0, 1, "BYPASS", MODELLER_PARAM_TYPE_SWITCH}, // VALETON_GLOBAL_BYPASS - {0, -40, 3, "MVOL", MODELLER_PARAM_TYPE_RANGE}, // VALETON_GLOBAL_MASTER_VOLUME + {80, 40, 240, "BPM", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // VALETON_GLOBAL_BPM + {0, -15, 15, "TRIM", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // VALETON_GLOBAL_INPUT_TRIM + {0, 0, 1, "CABSIM", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // VALETON_GLOBAL_CABSIM_BYPASS + {440, 415, 465, "TUNEREF", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // VALETON_GLOBAL_TUNING_REFERENCE + {0, 0, 1, "BYPASS", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // VALETON_GLOBAL_BYPASS + {0, -40, 3, "MVOL", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // VALETON_GLOBAL_MASTER_VOLUME }; diff --git a/source/main/valeton_params.h b/source/main/valeton_params.h index 94896d76..8518477c 100644 --- a/source/main/valeton_params.h +++ b/source/main/valeton_params.h @@ -119,6 +119,10 @@ enum ValetonEffectRvb VALETON_EFFECT_RVB_SWEET_SPACE }; +// markers for special params +#define VALETON_BLOCK_SELECTION 0xFF // select which Pedal in block +#define VALETON_BLOCK_ENABLE 0xFE // enable block + enum ValetonParameters { //**** NR **** @@ -288,17 +292,17 @@ enum ValetonParameters VALETON_PARAM_MOD_VIBRATO_RATE, VALETON_PARAM_MOD_VIBRATO_VOL, // O-Trem - VALETON_PARAM_OD_O_TREM_DEPTH, - VALETON_PARAM_OD_O_TREM_RATE, + VALETON_PARAM_MOD_O_TREM_DEPTH, + VALETON_PARAM_MOD_O_TREM_RATE, // Sine Trem VALETON_PARAM_MOD_SINE_TREM_DEPTH, VALETON_PARAM_MOD_SINE_TREM_RATE, VALETON_PARAM_MOD_SINE_TREM_VOL, // Bias Trem - VALETON_PARAM_OD_BIAS_TREM_DEPTH, - VALETON_PARAM_OD_BIAS_TREM_RATE, - VALETON_PARAM_OD_BIAS_TREM_VOL, - VALETON_PARAM_OD_BIAS_TREM_BIAS, + VALETON_PARAM_MOD_BIAS_TREM_DEPTH, + VALETON_PARAM_MOD_BIAS_TREM_RATE, + VALETON_PARAM_MOD_BIAS_TREM_VOL, + VALETON_PARAM_MOD_BIAS_TREM_BIAS, //**** Delay **** VALETON_PARAM_DLY_ENABLE, diff --git a/ui_design_480x320land/Tonex_Controller_480_320.eez-project b/ui_design_480x320land/Tonex_Controller_480_320.eez-project index d9a088a9..a1226f7b 100644 --- a/ui_design_480x320land/Tonex_Controller_480_320.eez-project +++ b/ui_design_480x320land/Tonex_Controller_480_320.eez-project @@ -2087,15 +2087,15 @@ "timeline": [], "eventHandlers": [ { - "objID": "76270896-bf9d-43db-f828-e16a600fb440", - "eventName": "SHORT_CLICKED", + "objID": "0cdc498b-d67a-424b-d524-589653338e5a", + "eventName": "LONG_PRESSED", "handlerType": "action", "action": "EffectIconClicked", "userData": 0 }, { - "objID": "0cdc498b-d67a-424b-d524-589653338e5a", - "eventName": "LONG_PRESSED", + "objID": "76270896-bf9d-43db-f828-e16a600fb440", + "eventName": "SHORT_CLICKED", "handlerType": "action", "action": "EffectIconClicked", "userData": 0 diff --git a/ui_design_480x320land/Tonex_Controller_480_320.eez-project-ui-state b/ui_design_480x320land/Tonex_Controller_480_320.eez-project-ui-state index 116b63dc..7e43395b 100644 --- a/ui_design_480x320land/Tonex_Controller_480_320.eez-project-ui-state +++ b/ui_design_480x320land/Tonex_Controller_480_320.eez-project-ui-state @@ -202,8 +202,7 @@ }, "icon": "svg:page" } - ], - "active": true + ] }, { "type": "row", @@ -223,7 +222,8 @@ "enableClose": false, "icon": "svg:properties" } - ] + ], + "active": true }, { "type": "tabset", @@ -978,8 +978,11 @@ "8": {}, "9": {}, "10": {}, - "13": { - "$selected": true + "13": {}, + "14": { + "9": { + "$selected": true + } } } } diff --git a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project index 48afcf5b..255b7e5a 100644 --- a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project +++ b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project @@ -1514,7 +1514,7 @@ "conditionalStyles": [], "childStyles": [] }, - "hiddenInEditor": true, + "hiddenInEditor": false, "timeline": [], "eventHandlers": [], "identifier": "ui_BottomPanelTonex", @@ -1538,7 +1538,7 @@ "conditionalStyles": [], "childStyles": [] }, - "hiddenInEditor": true, + "hiddenInEditor": false, "timeline": [], "eventHandlers": [ { @@ -1594,7 +1594,7 @@ "conditionalStyles": [], "childStyles": [] }, - "hiddenInEditor": true, + "hiddenInEditor": false, "timeline": [], "eventHandlers": [ { @@ -1657,7 +1657,7 @@ "conditionalStyles": [], "childStyles": [] }, - "hiddenInEditor": true, + "hiddenInEditor": false, "timeline": [], "eventHandlers": [ { @@ -1720,7 +1720,7 @@ "conditionalStyles": [], "childStyles": [] }, - "hiddenInEditor": true, + "hiddenInEditor": false, "timeline": [], "eventHandlers": [ { @@ -1783,7 +1783,7 @@ "conditionalStyles": [], "childStyles": [] }, - "hiddenInEditor": true, + "hiddenInEditor": false, "timeline": [], "eventHandlers": [ { @@ -1846,7 +1846,7 @@ "conditionalStyles": [], "childStyles": [] }, - "hiddenInEditor": true, + "hiddenInEditor": false, "timeline": [], "eventHandlers": [ { @@ -1909,7 +1909,7 @@ "conditionalStyles": [], "childStyles": [] }, - "hiddenInEditor": true, + "hiddenInEditor": false, "timeline": [], "eventHandlers": [ { @@ -1972,7 +1972,7 @@ "conditionalStyles": [], "childStyles": [] }, - "hiddenInEditor": true, + "hiddenInEditor": false, "timeline": [], "eventHandlers": [ { @@ -2035,7 +2035,7 @@ "conditionalStyles": [], "childStyles": [] }, - "hiddenInEditor": true, + "hiddenInEditor": false, "timeline": [], "eventHandlers": [ { @@ -2161,7 +2161,7 @@ }, { "objID": "4e4b9ef2-0763-44cb-a07f-6794212d431d", - "eventName": "PRESSED", + "eventName": "SHORT_CLICKED", "handlerType": "action", "action": "EffectIconClicked", "userData": 0 @@ -2225,7 +2225,7 @@ }, { "objID": "1d3fcfd3-0b13-4f68-a6b8-0fd2eddf5d03", - "eventName": "PRESSED", + "eventName": "SHORT_CLICKED", "handlerType": "action", "action": "EffectIconClicked", "userData": 0 @@ -2288,7 +2288,7 @@ }, { "objID": "358903d4-801c-40fc-93b2-30dc46cce7e0", - "eventName": "PRESSED", + "eventName": "SHORT_CLICKED", "handlerType": "action", "action": "EffectIconClicked", "userData": 0 @@ -2351,7 +2351,7 @@ }, { "objID": "e703c072-0c57-46cf-fbb4-03ecb495f0a0", - "eventName": "PRESSED", + "eventName": "SHORT_CLICKED", "handlerType": "action", "action": "EffectIconClicked", "userData": 0 @@ -2414,7 +2414,7 @@ }, { "objID": "95568315-0e99-48c0-dd97-8adb1f4fdc1a", - "eventName": "PRESSED", + "eventName": "SHORT_CLICKED", "handlerType": "action", "action": "EffectIconClicked", "userData": 0 @@ -2477,7 +2477,7 @@ }, { "objID": "9d68d5ef-0193-4fd7-9afc-245b1a2b6c7b", - "eventName": "PRESSED", + "eventName": "SHORT_CLICKED", "handlerType": "action", "action": "EffectIconClicked", "userData": 0 @@ -2540,7 +2540,7 @@ }, { "objID": "0b07f40d-365c-4288-a353-368ebd86b9f8", - "eventName": "PRESSED", + "eventName": "SHORT_CLICKED", "handlerType": "action", "action": "EffectIconClicked", "userData": 0 @@ -2603,7 +2603,7 @@ }, { "objID": "24432f8f-33c7-4e01-8a6e-2a725943664a", - "eventName": "PRESSED", + "eventName": "SHORT_CLICKED", "handlerType": "action", "action": "EffectIconClicked", "userData": 0 @@ -2666,7 +2666,7 @@ }, { "objID": "2b63097f-1501-4edd-b215-55719027c8ca", - "eventName": "PRESSED", + "eventName": "SHORT_CLICKED", "handlerType": "action", "action": "EffectIconClicked", "userData": 0 @@ -2729,7 +2729,7 @@ }, { "objID": "744c01d7-a1d8-4c1d-ae2e-e2dc5d94861b", - "eventName": "PRESSED", + "eventName": "SHORT_CLICKED", "handlerType": "action", "action": "EffectIconClicked", "userData": 0 @@ -2823,7 +2823,7 @@ } ], "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", - "hiddenFlag": false, + "hiddenFlag": true, "hiddenFlagType": "literal", "clickableFlag": false, "clickableFlagType": "literal", diff --git a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state index 375263bc..e2018574 100644 --- a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state +++ b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state @@ -975,10 +975,8 @@ "0": { "0": { "2": {}, - "11": { - "5": { - "$selected": true - } + "10": { + "$selected": true } } } From edb653a2809bc710296609313c0df2d26e623562 Mon Sep 17 00:00:00 2001 From: Greg Smith Date: Sat, 8 Nov 2025 12:39:28 +1100 Subject: [PATCH 02/34] - Big progress on GP5 support. Parameters mapped and synced. Effect states read and displayed on UI. - Changed web page sliders to send values when dragged, but rate limited to avoid overloading --- source/main/display.c | 2 +- source/main/display_valeton.c | 395 ++++++++++++--- source/main/index.html | 50 +- source/main/usb_valeton_gp5.c | 252 ++++------ source/main/valeton_params.c | 325 +++++-------- source/main/valeton_params.h | 456 +++++++----------- ...ontroller_800_480land.eez-project-ui-state | 14 +- 7 files changed, 752 insertions(+), 742 deletions(-) diff --git a/source/main/display.c b/source/main/display.c index d1b160b6..1144d803 100644 --- a/source/main/display.c +++ b/source/main/display.c @@ -1433,7 +1433,7 @@ void display_task(void *arg) tUIUpdate ui_update; ESP_LOGI(TAG, "Display task start"); - + while (1) { // Lock the mutex due to the LVGL APIs are not thread-safe diff --git a/source/main/display_valeton.c b/source/main/display_valeton.c index 74789b08..4ee1ecdc 100644 --- a/source/main/display_valeton.c +++ b/source/main/display_valeton.c @@ -101,7 +101,10 @@ void valeton_show_settings_tab(lv_event_t * e) else if (target == objects.ui_icon_val_rvb) { } - else if ((target == objects.ui_icon_val_amp) || (target == objects.ui_icon_val_cab)) + else if (target == objects.ui_icon_val_amp) + { + } + else if (target == objects.ui_icon_val_cab) { } else if (target == objects.ui_icon_val_tc) @@ -146,132 +149,185 @@ void valeton_action_effect_icon_clicked(lv_event_t * e) { ESP_LOGI(TAG, "UI Toggle Pre"); - valeton_params_get_locked_access(¶m_ptr); - if (param_ptr[VALETON_PARAM_PRE_ENABLE].Value == 0.0f) - { - value = 1.0f; - } - else + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) { - value = 0.0f; + if (param_ptr[VALETON_PARAM_PRE_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + valeton_params_release_locked_access(); + + usb_modify_parameter(VALETON_PARAM_PRE_ENABLE, value); } - valeton_params_release_locked_access(); - - usb_modify_parameter(VALETON_PARAM_PRE_ENABLE, value); } else if (event_object == objects.ui_icon_val_nr) { ESP_LOGI(TAG, "UI Toggle NR"); - valeton_params_get_locked_access(¶m_ptr); - if (param_ptr[VALETON_PARAM_NR_ENABLE].Value == 0.0f) + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) { - value = 1.0f; + if (param_ptr[VALETON_PARAM_NR_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + valeton_params_release_locked_access(); + + usb_modify_parameter(VALETON_PARAM_NR_ENABLE, value); } - else - { - value = 0.0f; - } - valeton_params_release_locked_access(); - - usb_modify_parameter(VALETON_PARAM_NR_ENABLE, value); } else if (event_object == objects.ui_icon_val_rvb) { ESP_LOGI(TAG, "UI Toggle RVB"); - valeton_params_get_locked_access(¶m_ptr); - if (param_ptr[VALETON_PARAM_RVB_ENABLE].Value == 0.0f) - { - value = 1.0f; - } - else + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) { - value = 0.0f; + if (param_ptr[VALETON_PARAM_RVB_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + valeton_params_release_locked_access(); + + usb_modify_parameter(VALETON_PARAM_RVB_ENABLE, value); } - valeton_params_release_locked_access(); - - usb_modify_parameter(VALETON_PARAM_RVB_ENABLE, value); } else if (event_object == objects.ui_icon_val_eq) { ESP_LOGI(TAG, "UI Toggle EQ"); - valeton_params_get_locked_access(¶m_ptr); - if (param_ptr[VALETON_PARAM_EQ_ENABLE].Value == 0.0f) + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) { - value = 1.0f; + if (param_ptr[VALETON_PARAM_EQ_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + valeton_params_release_locked_access(); + + usb_modify_parameter(VALETON_PARAM_EQ_ENABLE, value); } - else - { - value = 0.0f; - } - valeton_params_release_locked_access(); - - usb_modify_parameter(VALETON_PARAM_EQ_ENABLE, value); } else if (event_object == objects.ui_icon_val_mod) { ESP_LOGI(TAG, "UI Toggle Mod"); - valeton_params_get_locked_access(¶m_ptr); - if (param_ptr[VALETON_PARAM_MOD_ENABLE].Value == 0.0f) - { - value = 1.0f; - } - else + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) { - value = 0.0f; + if (param_ptr[VALETON_PARAM_MOD_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + valeton_params_release_locked_access(); + + usb_modify_parameter(VALETON_PARAM_MOD_ENABLE, value); } - valeton_params_release_locked_access(); - - usb_modify_parameter(VALETON_PARAM_MOD_ENABLE, value); } else if (event_object == objects.ui_icon_val_dly) { ESP_LOGI(TAG, "UI Toggle Dly"); - valeton_params_get_locked_access(¶m_ptr); - if (param_ptr[VALETON_PARAM_DLY_ENABLE].Value == 0.0f) + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) { - value = 1.0f; + if (param_ptr[VALETON_PARAM_DLY_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + valeton_params_release_locked_access(); + + usb_modify_parameter(VALETON_PARAM_DLY_ENABLE, value); } - else - { - value = 0.0f; - } - valeton_params_release_locked_access(); - - usb_modify_parameter(VALETON_PARAM_DLY_ENABLE, value); } else if (event_object == objects.ui_icon_val_dst) { ESP_LOGI(TAG, "UI Toggle Dst"); - valeton_params_get_locked_access(¶m_ptr); - if (param_ptr[VALETON_PARAM_DIST_ENABLE].Value == 0.0f) - { - value = 1.0f; - } - else + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) { - value = 0.0f; + if (param_ptr[VALETON_PARAM_DIST_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + valeton_params_release_locked_access(); + + usb_modify_parameter(VALETON_PARAM_DIST_ENABLE, value); } - valeton_params_release_locked_access(); - - usb_modify_parameter(VALETON_PARAM_DIST_ENABLE, value); } else if (event_object == objects.ui_icon_val_amp) { - //todo + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[VALETON_PARAM_AMP_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + valeton_params_release_locked_access(); + + usb_modify_parameter(VALETON_PARAM_AMP_ENABLE, value); + } } else if (event_object == objects.ui_icon_val_cab) { - //todo + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[VALETON_PARAM_CAB_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + valeton_params_release_locked_access(); + + usb_modify_parameter(VALETON_PARAM_CAB_ENABLE, value); + } } else if (event_object == objects.ui_icon_val_tc) { - //todo + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[VALETON_PARAM_NS_ENABLE].Value == 0.0f) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + valeton_params_release_locked_access(); + + usb_modify_parameter(VALETON_PARAM_NS_ENABLE, value); + } } else { @@ -344,8 +400,195 @@ uint8_t valeton_update_ui_parameters(void) // debug //ESP_LOGI(TAG, "Param %d: val: %02f, min: %02f, max: %02f", param, param_entry->Value, param_entry->Min, param_entry->Max); - //todo - + switch (param) + { + case VALETON_PARAM_NR_ENABLE: + { + if (param_entry->Value) + { + lv_img_set_src(objects.ui_icon_val_nr, (lv_obj_t*)&img_nr_on); + } + else + { + lv_img_set_src(objects.ui_icon_val_nr, (lv_obj_t*)&img_nr_off); + } + } break; + + //VALETON_PARAM_NR_PARAM_0 + + case VALETON_PARAM_PRE_ENABLE: + { + if (param_entry->Value) + { + lv_img_set_src(objects.ui_icon_val_pre, (lv_obj_t*)&img_pre_on); + } + else + { + lv_img_set_src(objects.ui_icon_val_pre, (lv_obj_t*)&img_pre_off); + } + } break; + + //VALETON_PARAM_PRE_TYPE, + // VALETON_PARAM_PRE_PARAM_0, + // VALETON_PARAM_PRE_PARAM_1, + // VALETON_PARAM_PRE_PARAM_2, + // VALETON_PARAM_PRE_PARAM_3, + // VALETON_PARAM_PRE_PARAM_4, + // VALETON_PARAM_PRE_PARAM_5, + + case VALETON_PARAM_DIST_ENABLE: + { + if (param_entry->Value) + { + lv_img_set_src(objects.ui_icon_val_dst, (lv_obj_t*)&img_dst_on); + } + else + { + lv_img_set_src(objects.ui_icon_val_dst, (lv_obj_t*)&img_dst_off); + } + } break; + + //VALETON_PARAM_DIST_TYPE, + // VALETON_PARAM_DIST_PARAM_0, + // VALETON_PARAM_DIST_PARAM_1, + // VALETON_PARAM_DIST_PARAM_2, + // VALETON_PARAM_DIST_PARAM_3, + // VALETON_PARAM_DIST_PARAM_4, + + case VALETON_PARAM_AMP_ENABLE: + { + if (param_entry->Value) + { + lv_img_set_src(objects.ui_icon_val_amp, (lv_obj_t*)&img_amp_on); + } + else + { + lv_img_set_src(objects.ui_icon_val_amp, (lv_obj_t*)&img_amp_off); + } + } break; + + //VALETON_PARAM_AMP_TYPE, + // VALETON_PARAM_AMP_PARAM_0, + // VALETON_PARAM_AMP_PARAM_1, + // VALETON_PARAM_AMP_PARAM_2, + // VALETON_PARAM_AMP_PARAM_3, + // VALETON_PARAM_AMP_PARAM_4, + // VALETON_PARAM_AMP_PARAM_5, + // VALETON_PARAM_AMP_PARAM_6, + + case VALETON_PARAM_CAB_ENABLE: + { + if (param_entry->Value) + { + lv_img_set_src(objects.ui_icon_val_cab, (lv_obj_t*)&img_cab_on); + } + else + { + lv_img_set_src(objects.ui_icon_val_cab, (lv_obj_t*)&img_cab_off); + } + } break; + + //VALETON_PARAM_CAB_TYPE, + //VALETON_PARAM_CAB_PARAM_0, + + case VALETON_PARAM_EQ_ENABLE: + { + if (param_entry->Value) + { + lv_img_set_src(objects.ui_icon_val_eq, (lv_obj_t*)&img_eq_on); + } + else + { + lv_img_set_src(objects.ui_icon_val_eq, (lv_obj_t*)&img_eq_off); + } + } break; + + // VALETON_PARAM_EQ_TYPE + // VALETON_PARAM_EQ_PARAM_0, + // VALETON_PARAM_EQ_PARAM_1, + // VALETON_PARAM_EQ_PARAM_2, + // VALETON_PARAM_EQ_PARAM_3, + // VALETON_PARAM_EQ_PARAM_4, + // VALETON_PARAM_EQ_PARAM_5, + + case VALETON_PARAM_MOD_ENABLE: + { + if (param_entry->Value) + { + lv_img_set_src(objects.ui_icon_val_mod, (lv_obj_t*)&img_mod_on); + } + else + { + lv_img_set_src(objects.ui_icon_val_mod, (lv_obj_t*)&img_mod_off); + } + } break; + + // VALETON_PARAM_MOD_TYPE, + // VALETON_PARAM_MOD_PARAM_0, + // VALETON_PARAM_MOD_PARAM_1, + // VALETON_PARAM_MOD_PARAM_2, + // VALETON_PARAM_MOD_PARAM_3, + + case VALETON_PARAM_DLY_ENABLE: + { + if (param_entry->Value) + { + lv_img_set_src(objects.ui_icon_val_dly, (lv_obj_t*)&img_dly_on); + } + else + { + lv_img_set_src(objects.ui_icon_val_dly, (lv_obj_t*)&img_dly_off); + } + } break; + + // VALETON_PARAM_DLY_TYPE, + // VALETON_PARAM_DLY_PARAM_0, + // VALETON_PARAM_DLY_PARAM_1, + // VALETON_PARAM_DLY_PARAM_2, + // VALETON_PARAM_DLY_PARAM_3, + // VALETON_PARAM_DLY_PARAM_4, + // VALETON_PARAM_DLY_PARAM_5, + // VALETON_PARAM_DLY_PARAM_6, + + case VALETON_PARAM_RVB_ENABLE: + { + if (param_entry->Value) + { + lv_img_set_src(objects.ui_icon_val_rvb, (lv_obj_t*)&img_rvb_on); + } + else + { + lv_img_set_src(objects.ui_icon_val_rvb, (lv_obj_t*)&img_rvb_off); + } + } break; + + // VALETON_PARAM_RVB_TYPE, + // VALETON_PARAM_RVB_PARAM_0, + // VALETON_PARAM_RVB_PARAM_1, + // VALETON_PARAM_RVB_PARAM_2, + // VALETON_PARAM_RVB_PARAM_3, + // VALETON_PARAM_RVB_PARAM_4, + + case VALETON_PARAM_NS_ENABLE: + { + if (param_entry->Value) + { + lv_img_set_src(objects.ui_icon_val_tc, (lv_obj_t*)&img_tc_on); + } + else + { + lv_img_set_src(objects.ui_icon_val_tc, (lv_obj_t*)&img_tc_off); + } + } break; + + //VALETON_PARAM_NS_TYPE, + // VALETON_PARAM_NS_PARAM_0, + // VALETON_PARAM_NS_PARAM_1, + // VALETON_PARAM_NS_PARAM_2, + // VALETON_PARAM_NS_PARAM_3, + // VALETON_PARAM_NS_PARAM_4, + } + valeton_params_release_locked_access(); } } diff --git a/source/main/index.html b/source/main/index.html index 6fc16b20..217f6203 100644 --- a/source/main/index.html +++ b/source/main/index.html @@ -819,6 +819,10 @@ // Init web socket when the page loads window.addEventListener('load', onload); + const THROTTLE_DELAY = 200; // ms between WebSocket sends + let lastSendTime = 0; + let throttleTimeout = null; + // waveform display let canvas = null; let ctx = null; @@ -848,7 +852,7 @@ inputs = document.getElementsByTagName('input'); for (i = 0; i < inputs.length; i++) { if (inputs[i].type == "range" && inputs[i].oninput == null) { - inputs[i].oninput = function(e){showValue(e.target);}; + inputs[i].oninput = function(e){showValue(e.target, true);}; } } @@ -1219,7 +1223,7 @@ paramrange.min = min; paramrange.max = max; paramrange.value = value; - showValue(paramrange); + showValue(paramrange, false); } function configureParamSwitch(objname, value) { @@ -2541,14 +2545,18 @@ param_value = parseFloat(e.target.value); } - if (SocketConnected === 1) { - sendWS({"CMD": "SETPARAM", - "INDEX": parseInt(param_index), - "VALUE": param_value}); + // range changes sent already in other function + if (e.target.type !== 'range') { + if (SocketConnected === 1) { + sendWS({"CMD": "SETPARAM", + "INDEX": parseInt(param_index), + "VALUE": param_value}); + } } } - function showValue(e) { + function showValue(e, send_value) { + var param_index = e.getAttribute("data-indexnumber"); const label = document.querySelector(`label[for="${e.id}"]`); if (!label) { console.error(`Label for input ${e.id} not found`); @@ -2562,6 +2570,32 @@ label.innerText += unit; } + if (send_value) { + // check for web socket send, with rate limit + const now = Date.now(); + if (now - lastSendTime >= THROTTLE_DELAY) { + if (SocketConnected === 1) { + sendWS({"CMD": "SETPARAM", + "INDEX": parseInt(param_index), + "VALUE": parseFloat(e.value)}); + } + lastSendTime = now; + } else { + // If within delay, queue the next send + clearTimeout(throttleTimeout); + + throttleTimeout = setTimeout(() => { + if (SocketConnected === 1) { + sendWS({"CMD": "SETPARAM", + "INDEX": parseInt(param_index), + "VALUE": parseFloat(e.value)}); + } + + lastSendTime = Date.now(); + }, THROTTLE_DELAY - (now - lastSendTime)); + } + } + // Handle label click label.onclick = function(event) { try { @@ -2656,7 +2690,7 @@ let bpm = globalTapTempo.tap(input); if (bpm > 0) { setParamValue("gb_bpm", bpm); - showValue(input); + showValue(input, false); var event = new Event('change'); input.dispatchEvent(event); diff --git a/source/main/usb_valeton_gp5.c b/source/main/usb_valeton_gp5.c index 887a3493..5af99d14 100644 --- a/source/main/usb_valeton_gp5.c +++ b/source/main/usb_valeton_gp5.c @@ -133,6 +133,13 @@ typedef struct uint8_t ReadyToWrite : 1; } tInputBufferEntry; +typedef struct __attribute__ ((packed)) +{ + uint16_t param_id; + int16_t value_raw; + uint32_t reserved; +} ParamEntry_t; + /* ** Static vars */ @@ -243,7 +250,8 @@ static esp_err_t usb_valeton_gp5_send_sysex(const uint8_t* buffer, uint8_t len, // packet structure - max 64 bytes to suit USB transfer size // 0xF0 start marker // CRC (2 bytes) - // Vendor ID 00 01 00 00 + // Total chunks e.g. 00 01 + // Chunk index e.g. 00 00 // Data size (2 byte) // 0101 for messages to GP5, 0102 for received? or could be commands and requests? // Payload @@ -262,9 +270,11 @@ static esp_err_t usb_valeton_gp5_send_sysex(const uint8_t* buffer, uint8_t len, // next 2 bytes are Crc, skip for now write_index += 2; - // next 4 bytes are vendor ID?? + // Total chunks TransmitBuffer[write_index++] = 0x00; TransmitBuffer[write_index++] = 0x01; + + // Chunk index TransmitBuffer[write_index++] = 0x00; TransmitBuffer[write_index++] = 0x00; @@ -589,7 +599,7 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 ESP_LOGI(TAG, "usb_valeton_gp5_process_single_sysex len: %d", (int)len); // debug - ESP_LOG_BUFFER_HEXDUMP(TAG, buffer, len, ESP_LOG_INFO); + //ESP_LOG_BUFFER_HEXDUMP(TAG, buffer, len, ESP_LOG_INFO); // check the message type read_index = 0; @@ -605,30 +615,8 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 { case 0x08: { -#if 0 - ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], write_index - read_index, ESP_LOG_INFO); - - // single preset name/index. Don't need as already done full sync - // get the preset index - preset_index = (buffer[read_index] * 16) + buffer[read_index + 1]; - read_index += 2; - - // skip 6 bytes of zeros - read_index += 6; - string_index = 0; - - // next is 32 bytes/16 characters of preset name, 2 bytes per char - for (uint32_t character = 0; character < 16; character++) - { - // get 4 bit nibbles into byte e.g. 04 07 into 47 - ascii_char = (buffer[read_index] << 4) | buffer[read_index + 1]; - read_index += 2; - - name_string[string_index++] = (char)ascii_char; - } -#endif - - ESP_LOGI(TAG, "Got 0x08"); + // this seems to be a confirmation message on param change + ESP_LOGI(TAG, "Got 0x08"); } break; case 0x10: @@ -987,147 +975,96 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 case 0x41: { - // current preset parameters? - ESP_LOGI(TAG, "Current Preset params?"); + // current preset parameters + ESP_LOGI(TAG, "Current Preset params"); // debug //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); + uint8_t temp_buf[4]; + uint32_t param_index = 0; + float temp_val; + tModellerParameter* param_ptr; - // skip the 0x0F 0x0F bytes - read_index += 2; + // bytes 140,141,142,143 has effect block states + uint8_t effect_states_1 = (buffer[140] << 4) | (buffer[141] & 0x0F); + uint8_t effect_states_2 = (buffer[142] << 4) | (buffer[143] & 0x0F); + //ESP_LOGI(TAG, "Effect states: %d %d", (int)effect_states_1, (int)effect_states_2); -#if 0 - // following is incorrect - - // suspected 16 byte chunks per parameter. 99 x 16 byte chunks are found. 99 is number of presets, maybe this is not params? - #define MESSAGE_LENGTH 34 + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + // set effect block states + param_ptr[VALETON_PARAM_NR_ENABLE].Value = (float)((effect_states_1 & 1) != 0); + param_ptr[VALETON_PARAM_PRE_ENABLE].Value = (float)((effect_states_1 & 2) != 0); + param_ptr[VALETON_PARAM_DIST_ENABLE].Value = (float)((effect_states_1 & 4) != 0); + param_ptr[VALETON_PARAM_AMP_ENABLE].Value = (float)((effect_states_1 & 8) != 0); + param_ptr[VALETON_PARAM_CAB_ENABLE].Value = (float)((effect_states_1 & 16) != 0); + param_ptr[VALETON_PARAM_EQ_ENABLE].Value = (float)((effect_states_1 & 32) != 0); + param_ptr[VALETON_PARAM_MOD_ENABLE].Value = (float)((effect_states_1 & 64) != 0); + param_ptr[VALETON_PARAM_DLY_ENABLE].Value = (float)((effect_states_1 & 128) != 0); + param_ptr[VALETON_PARAM_RVB_ENABLE].Value = (float)((effect_states_2 & 1) != 0); + param_ptr[VALETON_PARAM_NS_ENABLE].Value = (float)((effect_states_2 & 2) != 0); + + valeton_params_release_locked_access(); + } + + + // get effect block settings + //todo VALETON_PARAM_PRE_TYPE + + // first 332 bytes of data unknown. From there, back to back 32 bit big-endian floats + read_index += 268; //324; //332; + //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], 8, ESP_LOG_INFO); - for (size_t i = read_index; i <= len - read_index - MESSAGE_LENGTH; i += MESSAGE_LENGTH) + // params following match the order defined in Valeton params from VALETON_PARAM_NR_PARAM_0 down + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) { - uint8_t byte12 = buffer[i + 12]; // Effect block - uint8_t byte23 = buffer[i + 23]; // Parameter index or type indicator - uint8_t byte24 = buffer[i + 24]; // For reverb_type/reverb_ok - uint8_t byte30 = buffer[i + 30]; // Coarse value - uint8_t byte31 = buffer[i + 31]; // Fine value - uint8_t byte32 = buffer[i + 32]; // Parameter type/range - uint8_t byte33 = buffer[i + 33]; // Range indicator - - //if (byte12 == 0x04) - { - // Check for valid message pattern - if (byte23 == 0x00 && (byte32 == 0x00 || byte32 == 0x04)) - { - // delay_mix, delay_feedback, reverb_mix, reverb_decay - float value = usb_valeton_gp5_decode_percentage(byte30, byte31, byte33); - if (value >= 0.0f) - { - ESP_LOGI(TAG, "Percentage Parameter (Mix/Feedback/Decay) at index %zu: %.2f%%", i, value); - } - else - { - ESP_LOGI(TAG, "Invalid Percentage Parameter at index %zu: %02x %02x %02x %02x", i, byte30, byte31, byte32, byte33); - } - } - else if (byte23 == 0x01 && byte32 == 0x00) - { - // delay_time - float value = usb_valeton_gp5_decode_time(byte30, byte31, byte33); - if (value >= 0.0f) - { - ESP_LOGI(TAG, "Delay Time at index %zu: %.0fms", i, value); - } - else - { - ESP_LOGI(TAG, "Invalid Delay Time at index %zu: %02x %02x %02x %02x", i, byte30, byte31, byte32, byte33); - } - } - else if (byte23 == 0x01 && (byte32 == 0x0c || byte32 == 0x0b)) - { - // reverb_type, reverb_ok - const char *value = usb_valeton_gp5_decode_type_or_onoff(byte24, byte32); - ESP_LOGI(TAG, "Reverb Type/OnOff at index %zu: %s", i, value); - } - else if (byte23 == 0x02 && (byte32 == 0x04 || byte32 == 0x0c || byte32 == 0x04)) - { - // EQ Level - float value = usb_valeton_gp5_decode_level(byte30, byte31, byte32, byte33); - if (value >= -50.0f && value <= 50.0f) - { - ESP_LOGI(TAG, "EQ Level at index %zu: %.2f", i, value); - } - else - { - ESP_LOGI(TAG, "Invalid EQ Level at index %zu: %02x %02x %02x %02x", i, byte30, byte31, byte32, byte33); - } - } - else + while (read_index < len) + { + // join 8 nibbles to form a 4 byte value + for (uint8_t loop = 0; loop < 4; loop++) + { + temp_buf[loop] = buffer[read_index++] << 4; + temp_buf[loop] |= buffer[read_index++] & 0x0F; + } + + // get value as 32 bit big-endian float + memcpy((void*)&temp_val, (void*)temp_buf, sizeof(float)); + + if ((VALETON_PARAM_NR_PARAM_0 + param_index) < VALETON_PARAM_LAST) + { + // update local copy + param_ptr[VALETON_PARAM_NR_PARAM_0 + param_index].Value = temp_val; + } + else { - ESP_LOGI(TAG, "Unknown Parameter at index %zu: byte12=%02x, byte23=%02x, value=%02x %02x %02x %02x", i, byte12, byte23, byte30, byte31, byte32, byte33); + // maybe these are globals? + ESP_LOGW(TAG, "Invalid Param count %d %f!", (int)(VALETON_PARAM_NR_PARAM_0 + param_index), temp_val); } + + //ESP_LOGI(TAG, "Param val %d: %3.2f", (int)param_index, temp_val); + param_index++; } + + valeton_params_release_locked_access(); + } + else + { + ESP_LOGW(TAG, "Param mutex failed!"); } -#endif - // example response - // I (9019) app_Valeton_GP5: 0x3c3d4730 0f 0f 00 00 01 00 00 00 00 01 00 00 00 04 00 00 |................| - // I (9026) app_Valeton_GP5: 0x3c3d4740 00 01 00 00 00 00 00 00 00 02 00 00 00 04 00 00 |................| - // I (9035) app_Valeton_GP5: 0x3c3d4750 00 0a 04 05 04 0d 05 01 00 00 00 00 01 00 00 00 |................| - // I (9045) app_Valeton_GP5: 0x3c3d4760 00 01 01 00 00 04 00 00 00 0a 00 00 00 00 00 00 |................| - // I (9054) app_Valeton_GP5: 0x3c3d4770 00 02 01 00 00 04 00 00 00 08 00 00 00 00 00 00 |................| - // I (9064) app_Valeton_GP5: 0x3c3d4780 00 01 00 00 01 00 00 00 00 01 02 00 00 04 00 00 |................| - // I (9073) app_Valeton_GP5: 0x3c3d4790 03 02 00 00 00 00 00 00 00 02 02 00 00 04 00 00 |................| - // I (9083) app_Valeton_GP5: 0x3c3d47a0 07 08 00 00 00 00 00 00 00 02 00 00 08 06 00 01 |................| - // I (9092) app_Valeton_GP5: 0x3c3d47b0 00 01 03 00 00 04 00 00 01 0d 00 01 00 00 00 00 |................| - // I (9102) app_Valeton_GP5: 0x3c3d47c0 00 02 03 00 00 0a 00 00 00 00 00 01 00 02 00 09 |................| - // I (9111) app_Valeton_GP5: 0x3c3d47d0 00 03 00 04 00 05 00 06 00 07 00 08 00 03 03 00 |................| - // I (9121) app_Valeton_GP5: 0x3c3d47e0 02 08 00 00 01 0b 00 00 00 00 00 00 02 01 00 00 |................| - // I (9130) app_Valeton_GP5: 0x3c3d47f0 00 00 00 01 00 00 00 00 00 00 00 03 02 07 00 00 |................| - // I (9139) app_Valeton_GP5: 0x3c3d4800 00 00 00 07 00 08 00 00 00 00 00 0a 03 05 00 00 |................| - // I (9149) app_Valeton_GP5: 0x3c3d4810 00 00 00 01 01 09 00 00 00 00 00 04 00 00 00 00 |................| - // I (9158) app_Valeton_GP5: 0x3c3d4820 00 00 00 0b 00 04 00 00 00 00 00 0c 00 00 00 00 |................| - // I (9168) app_Valeton_GP5: 0x3c3d4830 00 00 00 0f 00 04 03 00 04 00 00 01 00 00 00 00 |................| - // I (9177) app_Valeton_GP5: 0x3c3d4840 0d 00 04 01 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9187) app_Valeton_GP5: 0x3c3d4850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9196) app_Valeton_GP5: 0x3c3d4860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9206) app_Valeton_GP5: 0x3c3d4870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9215) app_Valeton_GP5: 0x3c3d4880 0a 00 04 01 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9225) app_Valeton_GP5: 0x3c3d4890 07 00 04 02 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9234) app_Valeton_GP5: 0x3c3d48a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9244) app_Valeton_GP5: 0x3c3d48b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9253) app_Valeton_GP5: 0x3c3d48c0 0a 00 04 01 00 00 00 00 0a 00 04 02 00 00 00 00 |................| - // I (9263) app_Valeton_GP5: 0x3c3d48d0 05 0c 04 02 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9272) app_Valeton_GP5: 0x3c3d48e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9281) app_Valeton_GP5: 0x3c3d48f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9291) app_Valeton_GP5: 0x3c3d4900 0a 00 04 01 00 00 00 00 02 00 04 01 00 00 00 00 |................| - // I (9300) app_Valeton_GP5: 0x3c3d4910 04 08 04 02 00 00 00 00 02 00 04 02 00 00 00 00 |................| - // I (9310) app_Valeton_GP5: 0x3c3d4920 0b 04 04 02 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9319) app_Valeton_GP5: 0x3c3d4930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9329) app_Valeton_GP5: 0x3c3d4940 04 08 04 02 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9338) app_Valeton_GP5: 0x3c3d4950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9348) app_Valeton_GP5: 0x3c3d4960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9357) app_Valeton_GP5: 0x3c3d4970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9367) app_Valeton_GP5: 0x3c3d4980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9376) app_Valeton_GP5: 0x3c3d4990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9385) app_Valeton_GP5: 0x3c3d49a0 00 00 00 00 00 00 00 00 04 08 04 02 00 00 00 00 |................| - // I (9395) app_Valeton_GP5: 0x3c3d49b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9405) app_Valeton_GP5: 0x3c3d49c0 00 00 03 0f 00 00 00 00 00 00 03 0f 00 00 00 00 |................| - // I (9414) app_Valeton_GP5: 0x3c3d49d0 04 08 04 02 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9423) app_Valeton_GP5: 0x3c3d49e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9433) app_Valeton_GP5: 0x3c3d49f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9442) app_Valeton_GP5: 0x3c3d4a00 0a 00 04 01 00 00 00 00 0f 0a 04 03 00 00 00 00 |................| - // I (9452) app_Valeton_GP5: 0x3c3d4a10 0f 00 04 01 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9461) app_Valeton_GP5: 0x3c3d4a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9471) app_Valeton_GP5: 0x3c3d4a30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9480) app_Valeton_GP5: 0x3c3d4a40 00 0c 04 02 00 00 00 00 0b 08 04 01 00 00 00 00 |................| - // I (9490) app_Valeton_GP5: 0x3c3d4a50 04 08 04 02 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9499) app_Valeton_GP5: 0x3c3d4a60 04 08 04 02 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9508) app_Valeton_GP5: 0x3c3d4a70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9518) app_Valeton_GP5: 0x3c3d4a80 04 08 04 02 00 00 00 00 04 08 04 02 00 00 00 00 |................| - // I (9527) app_Valeton_GP5: 0x3c3d4a90 04 08 04 02 00 00 00 00 04 08 04 02 00 00 00 00 |................| - // I (9537) app_Valeton_GP5: 0x3c3d4aa0 04 08 04 02 00 00 00 00 00 00 00 00 00 00 00 00 |................| - // I (9546) app_Valeton_GP5: 0x3c3d4ab0 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 |................| - // I (9556) app_Valeton_GP5: 0x3c3d4ac0 00 08 00 00 00 04 00 00 00 00 00 00 00 07 00 00 |................| - // I (9565) app_Valeton_GP5: 0x3c3d4ad0 00 00 00 00 |....| + // if we have messages waiting in the queue, it will trigger another + // change that will overwrite this one. Skip the UI refresh to save time + if (uxQueueMessagesWaiting(input_queue) == 0) + { + // signal to refresh param UI + UI_RefreshParameterValues(); + + // update web UI + wifi_request_sync(WIFI_SYNC_TYPE_PARAMS, NULL, NULL); + } + + // debug + valeton_dump_parameters(); } break; case 0x43: @@ -1427,6 +1364,9 @@ static void usb_valeton_gp5_set_preset(uint8_t index) { ESP_LOGI(TAG, "Set preset %d", index); + // other way preset + // f0 06 0e 00 01 00 00 00 06 01 01 04 03 05 0d 00 00 00 00 00 00 f7 + // send control change uint8_t midi_tx[4]; diff --git a/source/main/valeton_params.c b/source/main/valeton_params.c index b79e602a..0340427d 100644 --- a/source/main/valeton_params.c +++ b/source/main/valeton_params.c @@ -42,236 +42,127 @@ static SemaphoreHandle_t ParamMutex; // MODELLER_PARAM_TYPE_RANGE // "value" below is just a default, is overridden by the preset on load // Data1 = block -// Data2 = pedal -// Data3 = param +// Data2 +// Data3 static tModellerParameter ValetonParameters[VALETON_GLOBAL_LAST] = { //value, Min, Max, Name Type Data1 Data2 Data 3 {0, 0, 1, "NG EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_NR, VALETON_BLOCK_ENABLE, 0}, //VALETON_PARAM_NR_ENABLE - {0, 0, 100, "NG THRESH", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NR, VALETON_EFFECT_NR_GATE, 0}, //VALETON_PARAM_NR_THRESHOLD - {0, 0, 1, "PRE EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_PRE, VALETON_BLOCK_ENABLE, 0}, //VALETON_PARAM_PRE_ENABLE, - {0, VALETON_EFFECT_PRE_COMP, VALETON_EFFECT_PRE_DETUNE, "PRE TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_PRE, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_PRE_TYPE, - {0, 0, 100, "PRE COS", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_COMP, 0}, //VALETON_PARAM_PRE_COMP_SUSTAIN, - {0, 0, 100, "PRE COV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_COMP, 1}, //VALETON_PARAM_PRE_COMP_VOL, - {0, 0, 100, "PRE C4S", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_COMP4, 0}, //VALETON_PARAM_PRE_COMP4_SUSTAIN, - {0, 0, 100, "PRE C4A", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_COMP4, 1}, //VALETON_PARAM_PRE_COMP4_ATTACK, - {0, 0, 100, "PRE C4V", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_COMP4, 2}, //VALETON_PARAM_PRE_COMP4_VOL, - {0, 0, 100, "PRE C4C", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_COMP4, 3}, //VALETON_PARAM_PRE_COMP4_CLIP, - {0, 0, 100, "PRE BG", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_BOOST, 0}, //VALETON_PARAM_PRE_BOOST_GAIN, - {0, 0, 1, "PRE B3S", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_BOOST, 1}, //VALETON_PARAM_PRE_BOOST_3DB, - {0, 0, 1, "PRE BBR", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_BOOST, 2}, //VALETON_PARAM_PRE_BOOST_BRIGHT, - {0, 0, 100, "PRE MBG", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_MICRO_BOOST, 0}, //VALETON_PARAM_PRE_MICRO_BOOST_GAIN, - {0, 0, 100, "PRE BBG", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_B_BOOST, 0}, //VALETON_PARAM_PRE_B_BOOST_GAIN, - {0, 0, 100, "PRE BBV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_B_BOOST, 1}, //VALETON_PARAM_PRE_B_BOOST_VOL, - {0, 0, 100, "PRE BBB", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_B_BOOST, 2}, //VALETON_PARAM_PRE_B_BOOST_BASS, - {0, 0, 100, "PRE BBT", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_B_BOOST, 3}, //VALETON_PARAM_PRE_B_BOOST_TREBLE, - {0, 0, 100, "PRE TOS", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_TOUCHER, 0}, //VALETON_PARAM_PRE_TOUCHER_SENSE, - {0, 0, 100, "PRE TOR", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_TOUCHER, 1}, //VALETON_PARAM_PRE_TOUCHER_RANGE, - {0, 0, 100, "PRE TOQ", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_TOUCHER, 2}, //VALETON_PARAM_PRE_TOUCHER_Q, - {0, 0, 100, "PRE TOM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_TOUCHER, 3}, //VALETON_PARAM_PRE_TOUCHER_MIX, - {0, 0, 1, "PRE TOO", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_TOUCHER, 4}, //VALETON_PARAM_PRE_TOUCHER_MODE - {0, 0, 100, "PRE CRD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_CRIER, 0}, //VALETON_PARAM_PRE_CRIER_DEPTH, - {0, 0, 100, "PRE CRR", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_CRIER, 1}, //VALETON_PARAM_PRE_CRIER_RATE, - {0, 0, 100, "PRE CRV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_CRIER, 2}, //VALETON_PARAM_PRE_CRIER_VOL, - {0, 0, 100, "PRE CRL", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_CRIER, 3}, //VALETON_PARAM_PRE_CRIER_LOW, - {0, 0, 100, "PRE CRQ", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_CRIER, 4}, //VALETON_PARAM_PRE_CRIER_Q, - {0, 0, 100, "PRE OCL", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_OCTA, 0}, //VALETON_PARAM_PRE_OCTA_LOW, - {0, 0, 100, "PRE OCH", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_OCTA, 1}, //VALETON_PARAM_PRE_OCTA_HIGH, - {0, 0, 100, "PRE OCD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_OCTA, 2}, //VALETON_PARAM_PRE_OCTA_DRY, - {0, 0, 100, "PRE PIH", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_PITCH, 0}, //VALETON_PARAM_PRE_PITCH_HIGH, - {0, 0, 100, "PRE PIL", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_PITCH, 1}, //VALETON_PARAM_PRE_PITCH_LOW, - {0, 0, 100, "PRE PID", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_PITCH, 2}, //VALETON_PARAM_PRE_PITCH_DRY, - {0, 0, 100, "PRE PIHV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_PITCH, 3}, //VALETON_PARAM_PRE_PITCH_H_VOL, - {0, 0, 100, "PRE PILV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_PITCH, 4}, //VALETON_PARAM_PRE_PITCH_L_VOL, - {0, -50, 50, "PRE DED", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_DETUNE, 0}, //VALETON_PARAM_PRE_DETUNE_DETUNE, - {0, 0, 100, "PRE DEW", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_DETUNE, 1}, //VALETON_PARAM_PRE_DETUNE_WET, - {0, 0, 100, "PRE DER", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_PRE_DETUNE, 2}, //VALETON_PARAM_PRE_DETUNE_DRY, - {0, 0, 1, "DST EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_DST, VALETON_BLOCK_ENABLE, 0}, //VALETON_PARAM_DIST_ENABLE, - {0, VALETON_EFFECT_DIST_GREEN_OD,VALETON_EFFECT_DIST_BASS_OD,"DST TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_DST, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_DIST_TYPE - {0, 0, 100, "DST GRG", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_GREEN_OD, 0}, //VALETON_PARAM_DIST_GREEN_OD_GAIN, - {0, 0, 100, "DST GRT", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_GREEN_OD, 1}, //VALETON_PARAM_DIST_GREEN_OD_TONE, - {0, 0, 100, "DST GRV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_GREEN_OD, 2}, //VALETON_PARAM_DIST_GREEN_OD_VOL, - {0, 0, 100, "DST YEG", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_YELLOW_OD, 0}, //VALETON_PARAM_DIST_YELLOW_OD_GAIN, - {0, 0, 100, "DST YEV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_YELLOW_OD, 1}, //VALETON_PARAM_DIST_YELLOW_OD_VOL, - {0, 0, 100, "DST SUG", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_SUPER_OD, 0}, //VALETON_PARAM_DIST_SUPER_OD_GAIN, - {0, 0, 100, "DST SUT", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_SUPER_OD, 1}, //VALETON_PARAM_DIST_SUPER_OD_TONE, - {0, 0, 100, "DST SUV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_SUPER_OD, 2}, //VALETON_PARAM_DIST_SUPER_OD_VOL, - {0, 0, 100, "DST SMG", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_SM_DIST, 0}, //VALETON_PARAM_DIST_SM_DIST_GAIN, - {0, 0, 100, "DST SMT", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_SM_DIST, 1}, //VALETON_PARAM_DIST_SM_DIST_TONE, - {0, 0, 100, "DST SMV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_SM_DIST, 2}, //VALETON_PARAM_DIST_SM_DIST_VOL, - {0, 0, 100, "DST PLG", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_PLUSTORTION, 0}, //VALETON_PARAM_DIST_PLUSTORTION_GAIN, - {0, 0, 100, "DST PLV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_PLUSTORTION, 1}, //VALETON_PARAM_DIST_PLUSTORTION_VOL, - {0, 0, 100, "DST LAG", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_LA_CHARGER, 0}, //VALETON_PARAM_DIST_LA_CHARGER_GAIN, - {0, 0, 100, "DST LAT", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_LA_CHARGER, 1}, //VALETON_PARAM_DIST_LA_CHARGER_TONE, - {0, 0, 100, "DST LAV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_LA_CHARGER, 2}, //VALETON_PARAM_DIST_LA_CHARGER_VOL, - {0, 0, 100, "DST DKG", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_DARKTALE, 0}, //VALETON_PARAM_DIST_DARKTALE_GAIN, - {0, 0, 100, "DST DKF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_DARKTALE, 1}, //VALETON_PARAM_DIST_DARKTALE_FILTER, - {0, 0, 100, "DST DKV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_DARKTALE, 2}, //VALETON_PARAM_DIST_DARKTALE_VOL, - {0, 0, 100, "DST SOF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_SORA_FUZZ, 0}, //VALETON_PARAM_DIST_SORA_FUZZ_FUZZ, - {0, 0, 100, "DST SOV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_SORA_FUZZ, 1}, //VALETON_PARAM_DIST_SORA_FUZZ_VOL, - {0, 0, 100, "DST RHF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_RED_HAZE, 0}, //VALETON_PARAM_DIST_RED_HAZE_FUZZ, - {0, 0, 100, "DST RHV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_RED_HAZE, 1}, //VALETON_PARAM_DIST_RED_HAZE_VOL, - {0, 0, 100, "DST BOG", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_BASS_OD, 0}, //VALETON_PARAM_DIST_BASS_OD_GAIN, - {0, 0, 100, "DST BOB", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_BASS_OD, 1}, //VALETON_PARAM_DIST_BASS_OD_BLEND, - {0, 0, 100, "DST BOV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_BASS_OD, 2}, //VALETON_PARAM_DIST_BASS_OD_VOL, - {0, 0, 100, "DST BOA", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_BASS_OD, 3}, //VALETON_PARAM_DIST_BASS_OD_BASS, - {0, 0, 100, "DST BOT", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, VALETON_EFFECT_DIST_BASS_OD, 4}, //VALETON_PARAM_DIST_BASS_OD_TREBLE, - + {0, 0, 1, "AMP EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_AMP, VALETON_BLOCK_ENABLE, 0}, //VALETON_PARAM_AMP_ENABLE + {0, 0, 1, "CAB EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_CAB, VALETON_BLOCK_ENABLE, 0}, //VALETON_PARAM_CAB_ENABLE {0, 0, 1, "EQ EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_EQ, VALETON_BLOCK_ENABLE, 0}, //VALETON_PARAM_EQ_ENABLE, - {0, VALETON_EFFECT_EQ_GUITAR_EQ1, VALETON_EFFECT_EQ_MESS_EQ,"EQ TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_EQ, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_EQ_TYPE - {0, 0, 100, "EQ G11", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_GUITAR_EQ1, 0}, //VALETON_PARAM_EQ_GUITAR_EQ1_125HZ, - {0, 0, 100, "EQ G14", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_GUITAR_EQ1, 1}, //VALETON_PARAM_EQ_GUITAR_EQ1_400HZ, - {0, 0, 100, "EQ G18", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_GUITAR_EQ1, 2}, //VALETON_PARAM_EQ_GUITAR_EQ1_800HZ, - {0, 0, 100, "EQ G16", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_GUITAR_EQ1, 3}, //VALETON_PARAM_EQ_GUITAR_EQ1_1600HZ, - {0, 0, 100, "EQ G10", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_GUITAR_EQ1, 4}, //VALETON_PARAM_EQ_GUITAR_EQ1_4000HZ, - {0, 0, 100, "EQ G1V", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_GUITAR_EQ1, 5}, //VALETON_PARAM_EQ_GUITAR_EQ1_VOL, - {0, 0, 100, "EQ G21", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_GUITAR_EQ2, 0}, //VALETON_PARAM_EQ_GUITAR_EQ2_100HZ, - {0, 0, 100, "EQ G25", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_GUITAR_EQ2, 1}, //VALETON_PARAM_EQ_GUITAR_EQ2_500HZ, - {0, 0, 100, "EQ G20", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_GUITAR_EQ2, 2}, //VALETON_PARAM_EQ_GUITAR_EQ2_1000HZ, - {0, 0, 100, "EQ G23", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_GUITAR_EQ2, 3}, //VALETON_PARAM_EQ_GUITAR_EQ2_3000HZ, - {0, 0, 100, "EQ G26", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_GUITAR_EQ2, 4}, //VALETON_PARAM_EQ_GUITAR_EQ2_6000HZ, - {0, 0, 100, "EQ G2V", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_GUITAR_EQ2, 5}, //VALETON_PARAM_EQ_GUITAR_EQ2_VOL, - {0, 0, 100, "EQ B13", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_BASS_EQ1, 0}, //VALETON_PARAM_EQ_BASS_EQ1_33HZ, - {0, 0, 100, "EQ B11", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_BASS_EQ1, 1}, //VALETON_PARAM_EQ_BASS_EQ1_150HZ, - {0, 0, 100, "EQ B16", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_BASS_EQ1, 2}, //VALETON_PARAM_EQ_BASS_EQ1_600HZ, - {0, 0, 100, "EQ B12", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_BASS_EQ1, 3}, //VALETON_PARAM_EQ_BASS_EQ1_2000HZ, - {0, 0, 100, "EQ B18", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_BASS_EQ1, 4}, //VALETON_PARAM_EQ_BASS_EQ1_8000HZ, - {0, 0, 100, "EQ B1V", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_BASS_EQ1, 5}, //VALETON_PARAM_EQ_BASS_EQ1_VOL, - {0, 0, 100, "EQ B25", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_BASS_EQ2, 0}, //VALETON_PARAM_EQ_BASS_EQ2_50HZ, - {0, 0, 100, "EQ B21", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_BASS_EQ2, 1}, //VALETON_PARAM_EQ_BASS_EQ2_120HZ, - {0, 0, 100, "EQ B24", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_BASS_EQ2, 2}, //VALETON_PARAM_EQ_BASS_EQ2_400HZ, - {0, 0, 100, "EQ B28", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_BASS_EQ2, 3}, //VALETON_PARAM_EQ_BASS_EQ2_800HZ, - {0, 0, 100, "EQ B25", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_BASS_EQ2, 4}, //VALETON_PARAM_EQ_BASS_EQ2_4500HZ, - {0, 0, 100, "EQ B2V", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_BASS_EQ2, 5}, //VALETON_PARAM_EQ_BASS_EQ2_VOL, - {0, 0, 100, "EQ ME8", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_MESS_EQ, 0}, //VALETON_PARAM_EQ_MESS_EQ_80HZ, - {0, 0, 100, "EQ ME2", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_MESS_EQ, 1}, //VALETON_PARAM_EQ_MESS_EQ_240HZ, - {0, 0, 100, "EQ ME7", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_MESS_EQ, 2}, //VALETON_PARAM_EQ_MESS_EQ_750HZ, - {0, 0, 100, "EQ ME0", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_MESS_EQ, 3}, //VALETON_PARAM_EQ_MESS_EQ_2200HZ, - {0, 0, 100, "EQ ME6", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_EQ_MESS_EQ, 4}, //VALETON_PARAM_EQ_MESS_EQ_6600HZ, - {0, 0, 1, "MOD EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_MOD, VALETON_BLOCK_ENABLE, 0}, // VALETON_PARAM_MOD_ENABLE, - {0, VALETON_EFFECT_MOD_A_CHORUS, VALETON_EFFECT_MOD_BIAS_TREM,"MOD TP", MODELLER_PARAM_TYPE_SELECT,VALETON_EFFECT_BLOCK_MOD, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_MOD_TYPE, - {0, 0, 100, "MOD ACD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_A_CHORUS, 0}, //VALETON_PARAM_MOD_A_CHORUS_DEPTH, - {0, 0, 10, "MOD ACR", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_A_CHORUS, 1}, //VALETON_PARAM_MOD_A_CHORUS_RATE, - {0, 0, 100, "MOD ACT", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_A_CHORUS, 2}, //VALETON_PARAM_MOD_A_CHORUS_TONE, - {0, 0, 100, "MOD BCD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_B_CHORUS, 0}, //VALETON_PARAM_MOD_B_CHORUS_DEPTH, - {0, 0, 10, "MOD BCR", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_B_CHORUS, 1}, //VALETON_PARAM_MOD_B_CHORUS_RATE, - {0, 0, 100, "MOD BCV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_B_CHORUS, 2}, //VALETON_PARAM_MOD_B_CHORUS_VOL, - {0, 0, 100, "MOD JED", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_JET, 0}, //VALETON_PARAM_MOD_JET_DEPTH, - {0, 0, 10, "MOD JER", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_JET, 1}, //VALETON_PARAM_MOD_JET_RATE, - {0, 0, 100, "MOD JEP", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_JET, 2}, //VALETON_PARAM_MOD_JET_PDELAY, - {0, 0, 100, "MOD JEF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_JET, 3}, //VALETON_PARAM_MOD_JET_FBACK, - {0, 0, 100, "MOD NJD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_N_JET, 0}, //VALETON_PARAM_MOD_N_JET_DEPTH, - {0, 0, 10, "MOD NJR", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_N_JET, 1}, //VALETON_PARAM_MOD_N_JET_RATE, - {0, 0, 100, "MOD NJP", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_N_JET, 2}, //VALETON_PARAM_MOD_N_JET_PDELAY, - {0, 0, 100, "MOD NJF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_N_JET, 3}, //VALETON_PARAM_MOD_N_JET_FBACK, - {0, 0, 10, "MOD OPR", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_O_PHASE, 0}, //VALETON_PARAM_MOD_O_PHASE_RATE, - {0, 0, 100, "MOD MVD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_M_VIBE, 0}, //VALETON_PARAM_MOD_M_VIBE_DEPTH, - {0, 0, 10, "MOD MVR", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_M_VIBE, 1}, //VALETON_PARAM_MOD_M_VIBE_RATE, - {0, 0, 100, "MOD VRD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_V_ROTO, 0}, //VALETON_PARAM_MOD_V_ROTO_DEPTH, - {0, 0, 10, "MOD VRR", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_V_ROTO, 1}, //VALETON_PARAM_MOD_V_ROTO_RATE, - {0, 0, 100, "MOD VID", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_VIBRATOR, 0}, //VALETON_PARAM_MOD_VIBRATO_DEPTH, - {0, 0, 10, "MOD VIR", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_VIBRATOR, 1}, //VALETON_PARAM_MOD_VIBRATO_RATE, - {0, 0, 100, "MOD VIV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_VIBRATOR, 2}, //VALETON_PARAM_MOD_VIBRATO_VOL, - {0, 0, 100, "MOD OTD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_O_TREM, 0}, //VALETON_PARAM_MOD_O_TREM_DEPTH, - {0, 0, 10, "MOD OTR", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_O_TREM, 1}, //VALETON_PARAM_MOD_O_TREM_RATE, - {0, 0, 100, "MOD SID", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_SINE_TREM, 0}, //VALETON_PARAM_MOD_SINE_TREM_DEPTH, - {0, 0, 10, "MOD SIR", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_SINE_TREM, 1}, //VALETON_PARAM_MOD_SINE_TREM_RATE, - {0, 0, 100, "MOD SIV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_SINE_TREM, 2}, //VALETON_PARAM_MOD_SINE_TREM_VOL, - {0, 0, 100, "MOD ODD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_BIAS_TREM, 0}, //VALETON_PARAM_MOD_BIAS_TREM_DEPTH, - {0, 0, 10, "MOD ODR", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_BIAS_TREM, 1}, //VALETON_PARAM_MOD_BIAS_TREM_RATE, - {0, 0, 100, "MOD ODV", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_BIAS_TREM, 2}, //VALETON_PARAM_MOD_BIAS_TREM_VOL, - {0, 0, 100, "MOD ODB", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_MOD_BIAS_TREM, 3}, //VALETON_PARAM_MOD_BIAS_TREM_BIAS, - {0, 0, 1, "DLY EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_DLY, VALETON_BLOCK_ENABLE, 0}, // VALETON_PARAM_DLY_ENABLE, - {0, VALETON_EFFECT_DLY_PURE, VALETON_EFFECT_DLY_PING_PONG,"DL TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_DLY, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_DLY_TYPE, - {0, 0, 100, "DLY PUM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_PURE, 0}, //VALETON_PARAM_DLY_PURE_MIX, - {0, 0, 1000, "DLY PUT", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_PURE, 1}, //VALETON_PARAM_DLY_PURE_TIME, - {0, 0, 100, "DLY PUF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_PURE, 2}, //VALETON_PARAM_DLY_PURE_FEEDBACK, - {0, 0, 1, "DLY PUT", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_PURE, 3}, // VALETON_PARAM_DLY_PURE_TRAIL, - {0, 0, 100, "DLY ANM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_ANALOG, 0}, //VALETON_PARAM_DLY_ANALOG_MIX, - {0, 0, 1000, "DLY ANT", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_ANALOG, 1}, //VALETON_PARAM_DLY_ANALOG_TIME, - {0, 0, 100, "DLY ANF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_ANALOG, 2}, //VALETON_PARAM_DLY_ANALOG_FEEDBACK, - {0, 0, 1, "DLY ANT", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_ANALOG, 3}, // VALETON_PARAM_DLY_ANALOG_TRAIL, - {0, 0, 100, "DLY SLM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_SLAPBACK, 0}, //VALETON_PARAM_DLY_SLAPBACK_MIX, - {0, 0, 1000, "DLY SLT", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_SLAPBACK, 1}, //VALETON_PARAM_DLY_SLAPBACK_TIME, - {0, 0, 100, "DLY SLF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_SLAPBACK, 2}, //VALETON_PARAM_DLY_SLAPBACK_FEEDBACK, - {0, 0, 1, "DLY STT", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_SLAPBACK, 3}, // VALETON_PARAM_DLY_SLAPBACK_TRAIL, - {0, 0, 100, "DLY SEM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_SWEET_ECHO, 0}, //VALETON_PARAM_DLY_SWEET_ECHO_MIX, - {0, 0, 1000, "DLY SET", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_SWEET_ECHO, 1}, //VALETON_PARAM_DLY_SWEET_ECHO_TIME, - {0, 0, 100, "DLY SEF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_SWEET_ECHO, 2}, //VALETON_PARAM_DLY_SWEET_ECHO_FEEDBACK, - {0, 0, 1, "DLY SET", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_SWEET_ECHO, 3}, // VALETON_PARAM_DLY_SWEET_ECHO_TRAIL, - {0, 0, 100, "DLY TPM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_TAPE, 0}, //VALETON_PARAM_DLY_TAPE_MIX, - {0, 0, 1000, "DLY TPT", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_TAPE, 1}, //VALETON_PARAM_DLY_TAPE_TIME, - {0, 0, 100, "DLY TPF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_TAPE, 2}, //VALETON_PARAM_DLY_TAPE_FEEDBACK, - {0, 0, 1, "DLY TPT", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_TAPE, 3}, // VALETON_PARAM_DLY_TAPE_TRAIL, - {0, 0, 100, "DLY TUM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_TUBE, 0}, //VALETON_PARAM_DLY_TUBE_MIX, - {0, 0, 1000, "DLY TUT", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_TUBE, 1}, //VALETON_PARAM_DLY_TUBE_TIME, - {0, 0, 100, "DLY TUF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_TUBE, 2}, //VALETON_PARAM_DLY_TUBE_FEEDBACK, - {0, 0, 1, "DLY TUT", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_TUBE, 3}, // VALETON_PARAM_DLY_TUBE_TRAIL, - {0, 0, 100, "DLY ECM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_REV_ECHO, 0}, //VALETON_PARAM_DLY_REV_ECHO_MIX, - {0, 0, 1000, "DLY ECT", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_REV_ECHO, 1}, //VALETON_PARAM_DLY_REV_ECHO_TIME, - {0, 0, 100, "DLY ECF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_REV_ECHO, 2}, //VALETON_PARAM_DLY_REV_ECHO_FEEDBACK, - {0, 0, 1, "DLY ECT", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_REV_ECHO, 3}, // VALETON_PARAM_DLY_REV_ECHO_TRAIL, - {0, 0, 100, "DLY REM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_RING_ECHO, 0}, //VALETON_PARAM_DLY_RING_ECHO_MIX, - {0, 0, 1000, "DLY REI", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_RING_ECHO, 1}, //VALETON_PARAM_DLY_RING_ECHO_TIME, - {0, 0, 100, "DLY REF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_RING_ECHO, 2}, //VALETON_PARAM_DLY_RING_ECHO_FEEDBACK, - {0, 0, 100, "DLY REM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_RING_ECHO, 3}, //VALETON_PARAM_DLY_RING_ECHO_R_MIX, - {0, 0, 100, "DLY REF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_RING_ECHO, 4}, //VALETON_PARAM_DLY_RING_ECHO_FREQ, - {0, 0, 100, "DLY REN", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_RING_ECHO, 5}, //VALETON_PARAM_DLY_RING_ECHO_TONE, - {0, 0, 1, "DLY RET", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_RING_ECHO, 6}, // VALETON_PARAM_DLY_RING_ECHO_TRAIL, - {0, 0, 100, "DLY SEM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_SWEEP_ECHO, 0}, //VALETON_PARAM_DLY_SWEEP_ECHO_MIX, - {0, 0, 1000, "DLY SET", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_SWEEP_ECHO, 1}, //VALETON_PARAM_DLY_SWEEP_ECHO_TIME, - {0, 0, 100, "DLY SEF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_SWEEP_ECHO, 2}, //VALETON_PARAM_DLY_SWEEP_ECHO_FBACK, - {0, 0, 100, "DLY SES", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_SWEEP_ECHO, 3}, //VALETON_PARAM_DLY_SWEEP_ECHO_S_DEPTH, - {0, 0, 100, "DLY SER", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_SWEEP_ECHO, 4}, //VALETON_PARAM_DLY_SWEEP_ECHO_S_RATE, - {0, 0, 1, "DLY SET", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_SWEEP_ECHO, 5}, // VALETON_PARAM_DLY_SWEEP_ECHO_TRAIL, - {0, 0, 100, "DLY PPM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_PING_PONG, 0}, //VALETON_PARAM_DLY_PING_PONG_MIX, - {0, 0, 1000, "DLY PPI", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_PING_PONG, 1}, //VALETON_PARAM_DLY_PING_PONG_TIME, - {0, 0, 100, "DLY PPF", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_PING_PONG, 2}, //VALETON_PARAM_DLY_PING_PONG_FEEDBACK, - {0, 0, 1, "DLY PPT", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_DLY_PING_PONG, 3}, // VALETON_PARAM_DLY_PING_PONG_TRAIL, - {0, 0, 1, "RVB EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_RVB, VALETON_BLOCK_ENABLE, 0}, // VALETON_PARAM_RVB_ENABLE, + {0, 0, 1, "NS EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_NS, VALETON_BLOCK_ENABLE, 0}, //VALETON_PARAM_NS_ENABLE + + {0, VALETON_EFFECT_PRE_COMP, VALETON_EFFECT_PRE_DETUNE, "PRE TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_PRE, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_PRE_TYPE, + {0, VALETON_EFFECT_DIST_GREEN_OD,VALETON_EFFECT_DIST_BASS_OD,"DST TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_DST, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_DIST_TYPE + {0, VALETON_EFFECT_AMP_TWEEDY, VALETON_EFFECT_AMP_AC_PRE2, "AMP TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_AMP, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_AMP_TYPE + {0, VALETON_EFFECT_CAB_TWD_CP, VALETON_EFFECT_CAB_AMPG_4X10,"CAB TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_CAB, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_CAB_TYPE + {0, VALETON_EFFECT_EQ_GUITAR_EQ1, VALETON_EFFECT_EQ_MESS_EQ,"EQ TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_EQ, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_EQ_TYPE + {0, VALETON_EFFECT_MOD_A_CHORUS, VALETON_EFFECT_MOD_BIAS_TREM,"MOD TP", MODELLER_PARAM_TYPE_SELECT,VALETON_EFFECT_BLOCK_MOD, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_MOD_TYPE, + {0, VALETON_EFFECT_DLY_PURE, VALETON_EFFECT_DLY_PING_PONG,"DL TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_DLY, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_DLY_TYPE, {0, VALETON_EFFECT_RVB_AIR, VALETON_EFFECT_RVB_SWEET_SPACE, "RVB TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_RVB, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_RVB_TYPE, - {0, 0, 100, "RVB AIM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_AIR, 0}, //VALETON_PARAM_RVB_AIR_MIX, - {0, 0, 100, "RVB AID", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_AIR, 1}, //VALETON_PARAM_RVB_AIR_DECAY, - {0, 0, 100, "RVB AID", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_AIR, 2}, //VALETON_PARAM_RVB_AIR_DAMP, - {0, 0, 1, "RVB AIT", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_AIR, 3}, //VALETON_PARAM_RVB_AIR_TRAIL, - {0, 0, 100, "RVB RMT", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_ROOM, 0}, //VALETON_PARAM_RVB_ROOM_MIX, - {0, 0, 100, "RVB RMD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_ROOM, 1}, //VALETON_PARAM_RVB_ROOM_DECAY, - {0, 0, 1, "RVB RMT", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_ROOM, 2}, //VALETON_PARAM_RVB_ROOM_TRAIL, - {0, 0, 100, "RVB HAM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_HALL, 0}, //VALETON_PARAM_RVB_HALL_MIX, - {0, 0, 100, "RVB HAD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_HALL, 1}, //VALETON_PARAM_RVB_HALL_DECAY, - {0, 0, 1, "RVB HAT", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_HALL, 2}, //VALETON_PARAM_RVB_HALL_TRAIL, - {0, 0, 100, "RVB CHM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_CHURCH, 0}, //VALETON_PARAM_RVB_CHURCH_MIX, - {0, 0, 100, "RVB CHD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_CHURCH, 1}, //VALETON_PARAM_RVB_CHURCH_DECAY, - {0, 0, 1, "RVB CHT", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_CHURCH, 2}, //VALETON_PARAM_RVB_CHURCH_TRAIL, - {0, 0, 100, "RVB P1M", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_PLATE_L, 0}, //VALETON_PARAM_RVB_PLATE_L_MIX, - {0, 0, 100, "RVB P1D", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_PLATE_L, 1}, //VALETON_PARAM_RVB_PLATE_L_DECAY, - {0, 0, 1, "RVB P1T", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_PLATE_L,2}, //VALETON_PARAM_RVB_PLATE_L_TRAIL, - {0, 0, 100, "RVB PLM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_PLATE, 3}, //VALETON_PARAM_RVB_PLATE_MIX, - {0, 0, 100, "RVB PLD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_PLATE, 4}, //VALETON_PARAM_RVB_PLATE_DECAY, - {0, 0, 100, "RVB PLR", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_PLATE, 5}, //VALETON_PARAM_RVB_PLATE_DAMP, - {0, 0, 1, "RVB PLT", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_PLATE, 6}, //VALETON_PARAM_RVB_PLATE_TRAIL, - {0, 0, 100, "RVB SPM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_SPRING, 0}, //VALETON_PARAM_RVB_SPRING_MIX, - {0, 0, 100, "RVB SPD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_SPRING, 1}, //VALETON_PARAM_RVB_SPRING_DECAY, - {0, 0, 1, "RVB ST", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_SPRING, 2}, //VALETON_PARAM_RVB_SPRING_TRAIL, - {0, 0, 100, "RVB NSM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_N_STAR, 0}, //VALETON_PARAM_RVB_N_STAR_MIX, - {0, 0, 100, "RVB NSD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_N_STAR, 1}, //VALETON_PARAM_RVB_N_STAR_DECAY, - {0, 0, 1, "RVB NST", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_N_STAR, 2}, //VALETON_PARAM_RVB_N_STAR_TRAIL, - {0, 0, 100, "RVB DSM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_DEEPSEA, 0}, //VALETON_PARAM_RVB_DEEPSEA_MIX, - {0, 0, 100, "RVB DSD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_DEEPSEA, 1}, //VALETON_PARAM_RVB_DEEPSEA_DECAY, - {0, 0, 1, "RVB DST", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_DEEPSEA, 2}, //VALETON_PARAM_RVB_DEEPSEA_TRAIL, - {0, 0, 100, "RVB SPM", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_SWEET_SPACE, 0}, //VALETON_PARAM_RVB_SWEET_SPACE_MIX, - {0, 0, 100, "RVB SPD", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_SWEET_SPACE, 1}, //VALETON_PARAM_RVB_SWEET_SPACE_DECAY, - {0, 0, 100, "RVB SPA", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_SWEET_SPACE, 2}, //VALETON_PARAM_RVB_SWEET_SPACE_DAMP, - {0, 0, 100, "RVB SPO", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_SWEET_SPACE, 3}, //VALETON_PARAM_RVB_SWEET_SPACE_MOD, - {0, 0, 1, "RVB SPT", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_RVB, VALETON_EFFECT_RVB_SWEET_SPACE, 4}, //VALETON_PARAM_RVB_SWEET_SPACE_TRAIL, + {0, 0, 1, "NS TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_NS, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_NS_TYPE + + {0, 0, 100, "NR 0", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NR, 0, 0}, //VALETON_PARAM_NR_PARAM_0 + {0, 0, 100, "NR 1", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NR, 0, 1}, //VALETON_PARAM_NR_PARAM_1 + {0, 0, 100, "NR 2", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NR, 0, 2}, //VALETON_PARAM_NR_PARAM_2 + {0, 0, 100, "NR 3", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NR, 0, 3}, //VALETON_PARAM_NR_PARAM_3 + {0, 0, 100, "NR 4", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NR, 0, 4}, //VALETON_PARAM_NR_PARAM_4 + {0, 0, 100, "NR 5", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NR, 0, 5}, //VALETON_PARAM_NR_PARAM_5 + {0, 0, 100, "NR 6", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NR, 0, 6}, //VALETON_PARAM_NR_PARAM_6 + {0, 0, 100, "NR 7", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NR, 0, 7}, //VALETON_PARAM_NR_PARAM_7 + + {0, 0, 100, "PRE 0", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, 0, 0}, //VALETON_PARAM_PRE_PARAM_0, + {0, 0, 100, "PRE 1", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, 0, 1}, //VALETON_PARAM_PRE_PARAM_1, + {0, 0, 100, "PRE 2", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, 0, 2}, //VALETON_PARAM_PRE_PARAM_2, + {0, 0, 100, "PRE 3", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, 0, 3}, //VALETON_PARAM_PRE_PARAM_3, + {0, 0, 100, "PRE 4", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, 0, 4}, //VALETON_PARAM_PRE_PARAM_4, + {0, 0, 100, "PRE 5", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, 0, 5}, //VALETON_PARAM_PRE_PARAM_5, + {0, 0, 100, "PRE 6", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, 0, 6}, //VALETON_PARAM_PRE_PARAM_6, + {0, 0, 100, "PRE 7", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_PRE, 0, 7}, //VALETON_PARAM_PRE_PARAM_7, + + {0, 0, 100, "DST 0", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, 0, 0}, //VALETON_PARAM_DIST_PARAM_0, + {0, 0, 100, "DST 1", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, 0, 1}, //VALETON_PARAM_DIST_PARAM_1, + {0, 0, 100, "DST 2", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, 0, 2}, //VALETON_PARAM_DIST_PARAM_2, + {0, 0, 100, "DST 3", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, 0, 3}, //VALETON_PARAM_DIST_PARAM_3, + {0, 0, 100, "DST 4", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, 0, 4}, //VALETON_PARAM_DIST_PARAM_4, + {0, 0, 100, "DST 5", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, 0, 5}, //VALETON_PARAM_DIST_PARAM_5, + {0, 0, 100, "DST 6", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, 0, 6}, //VALETON_PARAM_DIST_PARAM_6, + {0, 0, 100, "DST 7", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DST, 0, 7}, //VALETON_PARAM_DIST_PARAM_7, + + {0, 0, 100, "AMP 0", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_AMP, 0, 0}, //VALETON_PARAM_AMP_PARAM_0, + {0, 0, 100, "AMP 1", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_AMP, 0, 1}, //VALETON_PARAM_AMP_PARAM_1, + {0, 0, 100, "AMP 2", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_AMP, 0, 2}, //VALETON_PARAM_AMP_PARAM_2, + {0, 0, 100, "AMP 3", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_AMP, 0, 3}, //VALETON_PARAM_AMP_PARAM_3, + {0, 0, 100, "AMP 4", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_AMP, 0, 4}, //VALETON_PARAM_AMP_PARAM_4, + {0, 0, 100, "AMP 5", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_AMP, 0, 5}, //VALETON_PARAM_AMP_PARAM_5, + {0, 0, 100, "AMP 6", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_AMP, 0, 6}, //VALETON_PARAM_AMP_PARAM_6, + {0, 0, 100, "AMP 7", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_AMP, 0, 7}, //VALETON_PARAM_AMP_PARAM_7, + + {0, 0, 100, "CAB 0", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_CAB, 0, 0}, //VALETON_PARAM_CAB_PARAM_0, + {0, 0, 100, "CAB 1", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_CAB, 0, 1}, //VALETON_PARAM_CAB_PARAM_1, + {0, 0, 100, "CAB 2", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_CAB, 0, 2}, //VALETON_PARAM_CAB_PARAM_2, + {0, 0, 100, "CAB 3", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_CAB, 0, 3}, //VALETON_PARAM_CAB_PARAM_3, + {0, 0, 100, "CAB 4", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_CAB, 0, 4}, //VALETON_PARAM_CAB_PARAM_4, + {0, 0, 100, "CAB 5", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_CAB, 0, 5}, //VALETON_PARAM_CAB_PARAM_5, + {0, 0, 100, "CAB 6", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_CAB, 0, 6}, //VALETON_PARAM_CAB_PARAM_6, + {0, 0, 100, "CAB 7", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_CAB, 0, 7}, //VALETON_PARAM_CAB_PARAM_7, + + {0, 0, 100, "EQ 0", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, 0, 0}, //VALETON_PARAM_EQ_PARAM_0, + {0, 0, 100, "EQ 1", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, 0, 1}, //VALETON_PARAM_EQ_PARAM_1, + {0, 0, 100, "EQ 2", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, 0, 2}, //VALETON_PARAM_EQ_PARAM_2, + {0, 0, 100, "EQ 3", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, 0, 3}, //VALETON_PARAM_EQ_PARAM_3, + {0, 0, 100, "EQ 4", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, 0, 4}, //VALETON_PARAM_EQ_PARAM_4, + {0, 0, 100, "EQ 5", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, 0, 5}, //VALETON_PARAM_EQ_PARAM_5, + {0, 0, 100, "EQ 6", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, 0, 6}, //VALETON_PARAM_EQ_PARAM_6, + {0, 0, 100, "EQ 7", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_EQ, 0, 7}, //VALETON_PARAM_EQ_PARAM_7, + + {0, 0, 100, "MOD 0", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, 0, 0}, //VALETON_PARAM_MOD_PARAM_0, + {0, 0, 100, "MOD 1", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, 0, 1}, //VALETON_PARAM_MOD_PARAM_1, + {0, 0, 100, "MOD 2", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, 0, 2}, //VALETON_PARAM_MOD_PARAM_2, + {0, 0, 100, "MOD 3", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, 0, 3}, //VALETON_PARAM_MOD_PARAM_3, + {0, 0, 100, "MOD 4", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, 0, 4}, //VALETON_PARAM_MOD_PARAM_4, + {0, 0, 100, "MOD 5", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, 0, 5}, //VALETON_PARAM_MOD_PARAM_5, + {0, 0, 100, "MOD 6", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, 0, 6}, //VALETON_PARAM_MOD_PARAM_6, + {0, 0, 100, "MOD 7", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_MOD, 0, 7}, //VALETON_PARAM_MOD_PARAM_7, + + {0, 0, 100, "DLY 0", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, 0, 0}, //VALETON_PARAM_DLY_PARAM_0, + {0, 0, 100, "DLY 1", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, 0, 1}, //VALETON_PARAM_DLY_PARAM_1, + {0, 0, 100, "DLY 2", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, 0, 2}, //VALETON_PARAM_DLY_PARAM_2, + {0, 0, 100, "DLY 3", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, 0, 3}, //VALETON_PARAM_DLY_PARAM_3, + {0, 0, 100, "DLY 4", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, 0, 4}, //VALETON_PARAM_DLY_PARAM_4, + {0, 0, 100, "DLY 5", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, 0, 5}, //VALETON_PARAM_DLY_PARAM_5, + {0, 0, 100, "DLY 6", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, 0, 6}, //VALETON_PARAM_DLY_PARAM_6, + {0, 0, 100, "DLY 7", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_DLY, 0, 7}, //VALETON_PARAM_DLY_PARAM_7, + + {0, 0, 100, "RVB 0", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, 0, 0}, //VALETON_PARAM_RVB_PARAM_0, + {0, 0, 100, "RVB 1", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, 0, 1}, //VALETON_PARAM_RVB_PARAM_1, + {0, 0, 100, "RVB 2", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, 0, 2}, //VALETON_PARAM_RVB_PARAM_2, + {0, 0, 100, "RVB 3", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, 0, 3}, //VALETON_PARAM_RVB_PARAM_3, + {0, 0, 100, "RVB 4", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, 0, 4}, //VALETON_PARAM_RVB_PARAM_4, + {0, 0, 100, "RVB 5", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, 0, 5}, //VALETON_PARAM_RVB_PARAM_5, + {0, 0, 100, "RVB 6", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, 0, 6}, //VALETON_PARAM_RVB_PARAM_6, + {0, 0, 100, "RVB 7", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_RVB, 0, 7}, //VALETON_PARAM_RVB_PARAM_7, + + {0, 0, 100, "NS 0", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NS, 0, 0}, //VALETON_PARAM_NS_PARAM_0, + {0, 0, 100, "NS 1", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NS, 0, 1}, //VALETON_PARAM_NS_PARAM_1, + {0, 0, 100, "NS 2", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NS, 0, 2}, //VALETON_PARAM_NS_PARAM_2, + {0, 0, 100, "NS 3", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NS, 0, 3}, //VALETON_PARAM_NS_PARAM_3, + {0, 0, 100, "NS 4", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NS, 0, 4}, //VALETON_PARAM_NS_PARAM_4, + {0, 0, 100, "NS 5", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NS, 0, 5}, //VALETON_PARAM_NS_PARAM_5, + {0, 0, 100, "NS 6", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NS, 0, 6}, //VALETON_PARAM_NS_PARAM_6, + {0, 0, 100, "NS 7", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NS, 0, 7}, //VALETON_PARAM_NS_PARAM_7, + {0, 0, 100, "NS 8", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NS, 0, 8}, //VALETON_PARAM_NS_PARAM_8, + {0, 0, 100, "NS 9", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NS, 0, 9}, //VALETON_PARAM_NS_PARAM_9, + {0, 0, 100, "NS 10", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NS, 0, 10}, //VALETON_PARAM_NS_PARAM_10, // dummy end of params marker - {0, 0, 0, "LAST", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // TONEX_PARAM_LAST, + {0, 0, 0, "LAST", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // VALETON_PARAM_LAST, //************* Global params ***************** {80, 40, 240, "BPM", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // VALETON_GLOBAL_BPM diff --git a/source/main/valeton_params.h b/source/main/valeton_params.h index 8518477c..d7d8ba07 100644 --- a/source/main/valeton_params.h +++ b/source/main/valeton_params.h @@ -28,10 +28,13 @@ enum ValetonEffectBlocks VALETON_EFFECT_BLOCK_NR, VALETON_EFFECT_BLOCK_PRE, VALETON_EFFECT_BLOCK_DST, + VALETON_EFFECT_BLOCK_AMP, + VALETON_EFFECT_BLOCK_CAB, VALETON_EFFECT_BLOCK_EQ, VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_BLOCK_DLY, - VALETON_EFFECT_BLOCK_RVB + VALETON_EFFECT_BLOCK_RVB, + VALETON_EFFECT_BLOCK_NS }; enum ValetonValetonEffectNR @@ -119,297 +122,198 @@ enum ValetonEffectRvb VALETON_EFFECT_RVB_SWEET_SPACE }; +enum ValetonEffectCab +{ + VALETON_EFFECT_CAB_TWD_CP, + VALETON_EFFECT_CAB_DARK_VIT, + VALETON_EFFECT_CAB_FOXY_1X12, + VALETON_EFFECT_CAB_L_STAR_1X12, + VALETON_EFFECT_CAB_DARK_CS_2X12, + VALETON_EFFECT_CAB_DARK_TWIN_2X12, + VALETON_EFFECT_CAB_SUP_STAR_2X12, + VALETON_EFFECT_CAB_J_120_2X12, + VALETON_EFFECT_CAB_FOXY_2X12, + VALETON_EFFECT_CAB_UK_GRN_2X12, + VALETON_EFFECT_CAB_UK_GRN_4X12, + VALETON_EFFECT_CAB_BOG_4X12, + VALETON_EFFECT_CAB_DIZZ_4X12, + VALETON_EFFECT_CAB_EV_4X12, + VALETON_EFFECT_CAB_SOLO_4X12, + VALETON_EFFECT_CAB_MESS_4X12, + VALETON_EFFECT_CAB_EAGLE_4X12, + VALETON_EFFECT_CAB_JUICE_4X12, + VALETON_EFFECT_CAB_BELLMAN_2X12, + VALETON_EFFECT_CAB_AMPG_4X10 +}; + +enum ValetonEffectAmp +{ + VALETON_EFFECT_AMP_TWEEDY, + VALETON_EFFECT_AMP_BELLMAN_59N, + VALETON_EFFECT_AMP_DARK_TWIN, + VALETON_EFFECT_AMP_FOXY_30N, + VALETON_EFFECT_AMP_J_120_CL, + VALETON_EFFECT_AMP_MATCH_CL, + VALETON_EFFECT_AMP_L_STAR_CL, + VALETON_EFFECT_AMP_UK_45, + VALETON_EFFECT_AMP_UK_50JP, + VALETON_EFFECT_AMP_UK_800, + VALETON_EFFECT_AMP_BELLMAN_59B, + VALETON_EFFECT_AMP_FOXY_30TB, + VALETON_EFFECT_AMP_SUPDUAL_OD, + VALETON_EFFECT_AMP_SOLO100_OD, + VALETON_EFFECT_AMP_Z38_OD, + VALETON_EFFECT_AMP_BAD_KT_OD, + VALETON_EFFECT_AMP_JUICEW_R100, + VALETON_EFFECT_AMP_DIZZ_VH, + VALETON_EFFECT_AMP_DIZZ_VH_PLUS, + VALETON_EFFECT_AMP_EAGLE_120, + VALETON_EFFECT_AMP_EV_51, + VALETON_EFFECT_AMP_SOLO100_LD, + VALETON_EFFECT_AMP_MESS_DUALV, + VALETON_EFFECT_AMP_MESS_DUALM, + VALETON_EFFECT_AMP_POWER_LD, + VALETON_EFFECT_AMP_FLAGMAN_PLUS, + VALETON_EFFECT_AMP_BOG_REDV, + VALETON_EFFECT_AMP_CLASSIC_BASS, + VALETON_EFFECT_AMP_FOXY_BASS, + VALETON_EFFECT_AMP_MESS_BASS, + VALETON_EFFECT_AMP_AC_PRE1, + VALETON_EFFECT_AMP_AC_PRE2 +}; + // markers for special params #define VALETON_BLOCK_SELECTION 0xFF // select which Pedal in block #define VALETON_BLOCK_ENABLE 0xFE // enable block enum ValetonParameters { - //**** NR **** - VALETON_PARAM_NR_ENABLE, - VALETON_PARAM_NR_THRESHOLD, + // block enables + VALETON_PARAM_NR_ENABLE, + VALETON_PARAM_PRE_ENABLE, + VALETON_PARAM_DIST_ENABLE, + VALETON_PARAM_AMP_ENABLE, + VALETON_PARAM_CAB_ENABLE, + VALETON_PARAM_EQ_ENABLE, + VALETON_PARAM_MOD_ENABLE, + VALETON_PARAM_DLY_ENABLE, + VALETON_PARAM_RVB_ENABLE, + VALETON_PARAM_NS_ENABLE, + + // models + VALETON_PARAM_PRE_TYPE, + VALETON_PARAM_DIST_TYPE, + VALETON_PARAM_AMP_TYPE, + VALETON_PARAM_CAB_TYPE, + VALETON_PARAM_EQ_TYPE, + VALETON_PARAM_MOD_TYPE, + VALETON_PARAM_DLY_TYPE, + VALETON_PARAM_RVB_TYPE, + VALETON_PARAM_NS_TYPE, + + // params + //**** NR **** + VALETON_PARAM_NR_PARAM_0, + VALETON_PARAM_NR_PARAM_1, + VALETON_PARAM_NR_PARAM_2, + VALETON_PARAM_NR_PARAM_3, + VALETON_PARAM_NR_PARAM_4, + VALETON_PARAM_NR_PARAM_5, + VALETON_PARAM_NR_PARAM_6, + VALETON_PARAM_NR_PARAM_7, //**** Pre **** - VALETON_PARAM_PRE_ENABLE, - VALETON_PARAM_PRE_TYPE, - // Comp - VALETON_PARAM_PRE_COMP_SUSTAIN, - VALETON_PARAM_PRE_COMP_VOL, - // Comp4 - VALETON_PARAM_PRE_COMP4_SUSTAIN, - VALETON_PARAM_PRE_COMP4_ATTACK, - VALETON_PARAM_PRE_COMP4_VOL, - VALETON_PARAM_PRE_COMP4_CLIP, - // Boost - VALETON_PARAM_PRE_BOOST_GAIN, - VALETON_PARAM_PRE_BOOST_3DB, - VALETON_PARAM_PRE_BOOST_BRIGHT, - // Micro Boost - VALETON_PARAM_PRE_MICRO_BOOST_GAIN, - // B-Boost - VALETON_PARAM_PRE_B_BOOST_GAIN, - VALETON_PARAM_PRE_B_BOOST_VOL, - VALETON_PARAM_PRE_B_BOOST_BASS, - VALETON_PARAM_PRE_B_BOOST_TREBLE, - // Toucher - VALETON_PARAM_PRE_TOUCHER_SENSE, - VALETON_PARAM_PRE_TOUCHER_RANGE, - VALETON_PARAM_PRE_TOUCHER_Q, - VALETON_PARAM_PRE_TOUCHER_MIX, - VALETON_PARAM_PRE_TOUCHER_MODE, - // Crier - VALETON_PARAM_PRE_CRIER_DEPTH, - VALETON_PARAM_PRE_CRIER_RATE, - VALETON_PARAM_PRE_CRIER_VOL, - VALETON_PARAM_PRE_CRIER_LOW, - VALETON_PARAM_PRE_CRIER_Q, - // Octa - VALETON_PARAM_PRE_OCTA_LOW, - VALETON_PARAM_PRE_OCTA_HIGH, - VALETON_PARAM_PRE_OCTA_DRY, - // Pitch - VALETON_PARAM_PRE_PITCH_HIGH, - VALETON_PARAM_PRE_PITCH_LOW, - VALETON_PARAM_PRE_PITCH_DRY, - VALETON_PARAM_PRE_PITCH_H_VOL, - VALETON_PARAM_PRE_PITCH_L_VOL, - // Detune - VALETON_PARAM_PRE_DETUNE_DETUNE, - VALETON_PARAM_PRE_DETUNE_WET, - VALETON_PARAM_PRE_DETUNE_DRY, + VALETON_PARAM_PRE_PARAM_0, + VALETON_PARAM_PRE_PARAM_1, + VALETON_PARAM_PRE_PARAM_2, + VALETON_PARAM_PRE_PARAM_3, + VALETON_PARAM_PRE_PARAM_4, + VALETON_PARAM_PRE_PARAM_5, + VALETON_PARAM_PRE_PARAM_6, + VALETON_PARAM_PRE_PARAM_7, //**** Dist **** - VALETON_PARAM_DIST_ENABLE, - VALETON_PARAM_DIST_TYPE, - // Green OD - VALETON_PARAM_DIST_GREEN_OD_GAIN, - VALETON_PARAM_DIST_GREEN_OD_TONE, - VALETON_PARAM_DIST_GREEN_OD_VOL, - // Yellow OD - VALETON_PARAM_DIST_YELLOW_OD_GAIN, - VALETON_PARAM_DIST_YELLOW_OD_VOL, - // Super OD - VALETON_PARAM_DIST_SUPER_OD_GAIN, - VALETON_PARAM_DIST_SUPER_OD_TONE, - VALETON_PARAM_DIST_SUPER_OD_VOL, - // SM Dist - VALETON_PARAM_DIST_SM_DIST_GAIN, - VALETON_PARAM_DIST_SM_DIST_TONE, - VALETON_PARAM_DIST_SM_DIST_VOL, - // Plustortion - VALETON_PARAM_DIST_PLUSTORTION_GAIN, - VALETON_PARAM_DIST_PLUSTORTION_VOL, - // La Charger - VALETON_PARAM_DIST_LA_CHARGER_GAIN, - VALETON_PARAM_DIST_LA_CHARGER_TONE, - VALETON_PARAM_DIST_LA_CHARGER_VOL, - // Darktale - VALETON_PARAM_DIST_DARKTALE_GAIN, - VALETON_PARAM_DIST_DARKTALE_FILTER, - VALETON_PARAM_DIST_DARKTALE_VOL, - // Sora Fuzz - VALETON_PARAM_DIST_SORA_FUZZ_FUZZ, - VALETON_PARAM_DIST_SORA_FUZZ_VOL, - // Red Haze - VALETON_PARAM_DIST_RED_HAZE_FUZZ, - VALETON_PARAM_DIST_RED_HAZE_VOL, - // Bass OD - VALETON_PARAM_DIST_BASS_OD_GAIN, - VALETON_PARAM_DIST_BASS_OD_BLEND, - VALETON_PARAM_DIST_BASS_OD_VOL, - VALETON_PARAM_DIST_BASS_OD_BASS, - VALETON_PARAM_DIST_BASS_OD_TREBLE, - - //**** EQ **** - VALETON_PARAM_EQ_ENABLE, - VALETON_PARAM_EQ_TYPE, - // Guitar EQ 1 - VALETON_PARAM_EQ_GUITAR_EQ1_125HZ, - VALETON_PARAM_EQ_GUITAR_EQ1_400HZ, - VALETON_PARAM_EQ_GUITAR_EQ1_800HZ, - VALETON_PARAM_EQ_GUITAR_EQ1_1600HZ, - VALETON_PARAM_EQ_GUITAR_EQ1_4000HZ, - VALETON_PARAM_EQ_GUITAR_EQ1_VOL, - // Guitar EQ 2 - VALETON_PARAM_EQ_GUITAR_EQ2_100HZ, - VALETON_PARAM_EQ_GUITAR_EQ2_500HZ, - VALETON_PARAM_EQ_GUITAR_EQ2_1000HZ, - VALETON_PARAM_EQ_GUITAR_EQ2_3000HZ, - VALETON_PARAM_EQ_GUITAR_EQ2_6000HZ, - VALETON_PARAM_EQ_GUITAR_EQ2_VOL, - // Base EQ 1 - VALETON_PARAM_EQ_BASS_EQ1_33HZ, - VALETON_PARAM_EQ_BASS_EQ1_150HZ, - VALETON_PARAM_EQ_BASS_EQ1_600HZ, - VALETON_PARAM_EQ_BASS_EQ1_2000HZ, - VALETON_PARAM_EQ_BASS_EQ1_8000HZ, - VALETON_PARAM_EQ_BASS_EQ1_VOL, - // Base EQ 2 - VALETON_PARAM_EQ_BASS_EQ2_50HZ, - VALETON_PARAM_EQ_BASS_EQ2_120HZ, - VALETON_PARAM_EQ_BASS_EQ2_400HZ, - VALETON_PARAM_EQ_BASS_EQ2_800HZ, - VALETON_PARAM_EQ_BASS_EQ2_4500HZ, - VALETON_PARAM_EQ_BASS_EQ2_VOL, - // Mess EQ - VALETON_PARAM_EQ_MESS_EQ_80HZ, - VALETON_PARAM_EQ_MESS_EQ_240HZ, - VALETON_PARAM_EQ_MESS_EQ_750HZ, - VALETON_PARAM_EQ_MESS_EQ_2200HZ, - VALETON_PARAM_EQ_MESS_EQ_6600HZ, + VALETON_PARAM_DIST_PARAM_0, + VALETON_PARAM_DIST_PARAM_1, + VALETON_PARAM_DIST_PARAM_2, + VALETON_PARAM_DIST_PARAM_3, + VALETON_PARAM_DIST_PARAM_4, + VALETON_PARAM_DIST_PARAM_5, + VALETON_PARAM_DIST_PARAM_6, + VALETON_PARAM_DIST_PARAM_7, + + //**** Amp **** + VALETON_PARAM_AMP_PARAM_0, + VALETON_PARAM_AMP_PARAM_1, + VALETON_PARAM_AMP_PARAM_2, + VALETON_PARAM_AMP_PARAM_3, + VALETON_PARAM_AMP_PARAM_4, + VALETON_PARAM_AMP_PARAM_5, + VALETON_PARAM_AMP_PARAM_6, + VALETON_PARAM_AMP_PARAM_7, + + //**** Cab **** + VALETON_PARAM_CAB_PARAM_0, + VALETON_PARAM_CAB_PARAM_1, + VALETON_PARAM_CAB_PARAM_2, + VALETON_PARAM_CAB_PARAM_3, + VALETON_PARAM_CAB_PARAM_4, + VALETON_PARAM_CAB_PARAM_5, + VALETON_PARAM_CAB_PARAM_6, + VALETON_PARAM_CAB_PARAM_7, + + //**** EQ **** + VALETON_PARAM_EQ_PARAM_0, + VALETON_PARAM_EQ_PARAM_1, + VALETON_PARAM_EQ_PARAM_2, + VALETON_PARAM_EQ_PARAM_3, + VALETON_PARAM_EQ_PARAM_4, + VALETON_PARAM_EQ_PARAM_5, + VALETON_PARAM_EQ_PARAM_6, + VALETON_PARAM_EQ_PARAM_7, //**** Mod **** - VALETON_PARAM_MOD_ENABLE, - VALETON_PARAM_MOD_TYPE, - // A Chorus - VALETON_PARAM_MOD_A_CHORUS_DEPTH, - VALETON_PARAM_MOD_A_CHORUS_RATE, - VALETON_PARAM_MOD_A_CHORUS_TONE, - // B Chorus - VALETON_PARAM_MOD_B_CHORUS_DEPTH, - VALETON_PARAM_MOD_B_CHORUS_RATE, - VALETON_PARAM_MOD_B_CHORUS_VOL, - // Jet - VALETON_PARAM_MOD_JET_DEPTH, - VALETON_PARAM_MOD_JET_RATE, - VALETON_PARAM_MOD_JET_PDELAY, - VALETON_PARAM_MOD_JET_FBACK, - // N-Jet - VALETON_PARAM_MOD_N_JET_DEPTH, - VALETON_PARAM_MOD_N_JET_RATE, - VALETON_PARAM_MOD_N_JET_PDELAY, - VALETON_PARAM_MOD_N_JET_FBACK, - // O-Phase - VALETON_PARAM_MOD_O_PHASE_RATE, - // M-Vibe - VALETON_PARAM_MOD_M_VIBE_DEPTH, - VALETON_PARAM_MOD_M_VIBE_RATE, - // V-Roto - VALETON_PARAM_MOD_V_ROTO_DEPTH, - VALETON_PARAM_MOD_V_ROTO_RATE, - // Vibrato - VALETON_PARAM_MOD_VIBRATO_DEPTH, - VALETON_PARAM_MOD_VIBRATO_RATE, - VALETON_PARAM_MOD_VIBRATO_VOL, - // O-Trem - VALETON_PARAM_MOD_O_TREM_DEPTH, - VALETON_PARAM_MOD_O_TREM_RATE, - // Sine Trem - VALETON_PARAM_MOD_SINE_TREM_DEPTH, - VALETON_PARAM_MOD_SINE_TREM_RATE, - VALETON_PARAM_MOD_SINE_TREM_VOL, - // Bias Trem - VALETON_PARAM_MOD_BIAS_TREM_DEPTH, - VALETON_PARAM_MOD_BIAS_TREM_RATE, - VALETON_PARAM_MOD_BIAS_TREM_VOL, - VALETON_PARAM_MOD_BIAS_TREM_BIAS, + VALETON_PARAM_MOD_PARAM_0, + VALETON_PARAM_MOD_PARAM_1, + VALETON_PARAM_MOD_PARAM_2, + VALETON_PARAM_MOD_PARAM_3, + VALETON_PARAM_MOD_PARAM_4, + VALETON_PARAM_MOD_PARAM_5, + VALETON_PARAM_MOD_PARAM_6, + VALETON_PARAM_MOD_PARAM_7, //**** Delay **** - VALETON_PARAM_DLY_ENABLE, - VALETON_PARAM_DLY_TYPE, - // Pure - VALETON_PARAM_DLY_PURE_MIX, - VALETON_PARAM_DLY_PURE_TIME, - VALETON_PARAM_DLY_PURE_FEEDBACK, - VALETON_PARAM_DLY_PURE_TRAIL, - // Analog - VALETON_PARAM_DLY_ANALOG_MIX, - VALETON_PARAM_DLY_ANALOG_TIME, - VALETON_PARAM_DLY_ANALOG_FEEDBACK, - VALETON_PARAM_DLY_ANALOG_TRAIL, - // Slapback - VALETON_PARAM_DLY_SLAPBACK_MIX, - VALETON_PARAM_DLY_SLAPBACK_TIME, - VALETON_PARAM_DLY_SLAPBACK_FEEDBACK, - VALETON_PARAM_DLY_SLAPBACK_TRAIL, - // Sweet Echo - VALETON_PARAM_DLY_SWEET_ECHO_MIX, - VALETON_PARAM_DLY_SWEET_ECHO_TIME, - VALETON_PARAM_DLY_SWEET_ECHO_FEEDBACK, - VALETON_PARAM_DLY_SWEET_ECHO_TRAIL, - // Tape - VALETON_PARAM_DLY_TAPE_MIX, - VALETON_PARAM_DLY_TAPE_TIME, - VALETON_PARAM_DLY_TAPE_FEEDBACK, - VALETON_PARAM_DLY_TAPE_TRAIL, - // Tube - VALETON_PARAM_DLY_TUBE_MIX, - VALETON_PARAM_DLY_TUBE_TIME, - VALETON_PARAM_DLY_TUBE_FEEDBACK, - VALETON_PARAM_DLY_TUBE_TRAIL, - // Rev Echo - VALETON_PARAM_DLY_REV_ECHO_MIX, - VALETON_PARAM_DLY_REV_ECHO_TIME, - VALETON_PARAM_DLY_REV_ECHO_FEEDBACK, - VALETON_PARAM_DLY_REV_ECHO_TRAIL, - // Ring Echo - VALETON_PARAM_DLY_RING_ECHO_MIX, - VALETON_PARAM_DLY_RING_ECHO_TIME, - VALETON_PARAM_DLY_RING_ECHO_FEEDBACK, - VALETON_PARAM_DLY_RING_ECHO_R_MIX, - VALETON_PARAM_DLY_RING_ECHO_FREQ, - VALETON_PARAM_DLY_RING_ECHO_TONE, - VALETON_PARAM_DLY_RING_ECHO_TRAIL, - // Sweep Echo - VALETON_PARAM_DLY_SWEEP_ECHO_MIX, - VALETON_PARAM_DLY_SWEEP_ECHO_TIME, - VALETON_PARAM_DLY_SWEEP_ECHO_FBACK, - VALETON_PARAM_DLY_SWEEP_ECHO_S_DEPTH, - VALETON_PARAM_DLY_SWEEP_ECHO_S_RATE, - VALETON_PARAM_DLY_SWEEP_ECHO_TRAIL, - // Ping Pong - VALETON_PARAM_DLY_PING_PONG_MIX, - VALETON_PARAM_DLY_PING_PONG_TIME, - VALETON_PARAM_DLY_PING_PONG_FEEDBACK, - VALETON_PARAM_DLY_PING_PONG_TRAIL, + VALETON_PARAM_DLY_PARAM_0, + VALETON_PARAM_DLY_PARAM_1, + VALETON_PARAM_DLY_PARAM_2, + VALETON_PARAM_DLY_PARAM_3, + VALETON_PARAM_DLY_PARAM_4, + VALETON_PARAM_DLY_PARAM_5, + VALETON_PARAM_DLY_PARAM_6, + VALETON_PARAM_DLY_PARAM_7, //**** Reverb **** - VALETON_PARAM_RVB_ENABLE, - VALETON_PARAM_RVB_TYPE, - // Air - VALETON_PARAM_RVB_AIR_MIX, - VALETON_PARAM_RVB_AIR_DECAY, - VALETON_PARAM_RVB_AIR_DAMP, - VALETON_PARAM_RVB_AIR_TRAIL, - // Room - VALETON_PARAM_RVB_ROOM_MIX, - VALETON_PARAM_RVB_ROOM_DECAY, - VALETON_PARAM_RVB_ROOM_TRAIL, - // Hall - VALETON_PARAM_RVB_HALL_MIX, - VALETON_PARAM_RVB_HALL_DECAY, - VALETON_PARAM_RVB_HALL_TRAIL, - // Church - VALETON_PARAM_RVB_CHURCH_MIX, - VALETON_PARAM_RVB_CHURCH_DECAY, - VALETON_PARAM_RVB_CHURCH_TRAIL, - // Plate L - VALETON_PARAM_RVB_PLATE_L_MIX, - VALETON_PARAM_RVB_PLATE_L_DECAY, - VALETON_PARAM_RVB_PLATE_L_TRAIL, - // Plate - VALETON_PARAM_RVB_PLATE_MIX, - VALETON_PARAM_RVB_PLATE_DECAY, - VALETON_PARAM_RVB_PLATE_DAMP, - VALETON_PARAM_RVB_PLATE_TRAIL, - // Spring - VALETON_PARAM_RVB_SPRING_MIX, - VALETON_PARAM_RVB_SPRING_DECAY, - VALETON_PARAM_RVB_SPRING_TRAIL, - // N-Star - VALETON_PARAM_RVB_N_STAR_MIX, - VALETON_PARAM_RVB_N_STAR_DECAY, - VALETON_PARAM_RVB_N_STAR_TRAIL, - // Deepsea - VALETON_PARAM_RVB_DEEPSEA_MIX, - VALETON_PARAM_RVB_DEEPSEA_DECAY, - VALETON_PARAM_RVB_DEEPSEA_TRAIL, - // Sweet Space - VALETON_PARAM_RVB_SWEET_SPACE_MIX, - VALETON_PARAM_RVB_SWEET_SPACE_DECAY, - VALETON_PARAM_RVB_SWEET_SPACE_DAMP, - VALETON_PARAM_RVB_SWEET_SPACE_MOD, - VALETON_PARAM_RVB_SWEET_SPACE_TRAIL, + VALETON_PARAM_RVB_PARAM_0, + VALETON_PARAM_RVB_PARAM_1, + VALETON_PARAM_RVB_PARAM_2, + VALETON_PARAM_RVB_PARAM_3, + VALETON_PARAM_RVB_PARAM_4, + VALETON_PARAM_RVB_PARAM_5, + VALETON_PARAM_RVB_PARAM_6, + VALETON_PARAM_RVB_PARAM_7, + + //**** NS **** + VALETON_PARAM_NS_PARAM_0, + VALETON_PARAM_NS_PARAM_1, + VALETON_PARAM_NS_PARAM_2, + VALETON_PARAM_NS_PARAM_3, + VALETON_PARAM_NS_PARAM_4, + VALETON_PARAM_NS_PARAM_5, + VALETON_PARAM_NS_PARAM_6, + VALETON_PARAM_NS_PARAM_7, + VALETON_PARAM_NS_PARAM_8, + VALETON_PARAM_NS_PARAM_9, + VALETON_PARAM_NS_PARAM_10, // must be last actual parameter VALETON_PARAM_LAST, diff --git a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state index d5476b68..8c954bf0 100644 --- a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state +++ b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state @@ -1,6 +1,6 @@ { "navigation": { - "selectedUserPageObject": "[Tonex_Controller_800_480land.eez-project]:/userPages/1", + "selectedUserPageObject": "[Tonex_Controller_800_480land.eez-project]:/userPages/0", "subnavigationSelectedItems": {} }, "layoutModel": { @@ -196,10 +196,10 @@ { "type": "tab", "id": "#76314634-65e1-4225-b990-af9c26f38d4f", - "name": "Settings", + "name": "Screen1", "component": "editor", "config": { - "objectPath": "[Tonex_Controller_800_480land.eez-project]:/userPages/1", + "objectPath": "[Tonex_Controller_800_480land.eez-project]:/userPages/0", "permanent": false }, "icon": "svg:page" @@ -977,7 +977,8 @@ "2": {}, "10": { "$selected": true - } + }, + "11": {} } } }, @@ -999,10 +1000,7 @@ "selection": { "0": { "0": { - "1": { - "$selected": true - }, - "7": {} + "$selected": true } } }, From 67095e7ea5b019e8130853c457eb5ed3b6c15e31 Mon Sep 17 00:00:00 2001 From: Greg Smith Date: Sun, 9 Nov 2025 15:48:34 +1100 Subject: [PATCH 03/34] More work on GP5 support: - moved LVGL objects to PSRAM - added config screen - more work on comms interface. Params all now read and interpreted --- .../lvgl__lvgl/src/lv_conf_internal.h | 10 +- source/main/control.h | 17 +- source/main/display.c | 15 +- source/main/display_valeton.c | 11 +- .../main/ui_generated_800x480land/screens.c | 2719 ++++ .../main/ui_generated_800x480land/screens.h | 214 + source/main/usb_valeton_gp5.c | 340 +- source/main/valeton_params.c | 3 +- source/main/valeton_params.h | 6 +- source/sdkconfig.defaults | 1 + .../Tonex_Controller_800_480land.eez-project | 12874 ++++++++++++++++ ...ontroller_800_480land.eez-project-ui-state | 49 +- 12 files changed, 16219 insertions(+), 40 deletions(-) diff --git a/source/components/lvgl__lvgl/src/lv_conf_internal.h b/source/components/lvgl__lvgl/src/lv_conf_internal.h index 0c297081..4eb24d1b 100644 --- a/source/components/lvgl__lvgl/src/lv_conf_internal.h +++ b/source/components/lvgl__lvgl/src/lv_conf_internal.h @@ -160,30 +160,30 @@ #else /*LV_MEM_CUSTOM*/ #ifndef LV_MEM_CUSTOM_INCLUDE #ifdef CONFIG_LV_MEM_CUSTOM_INCLUDE - #define LV_MEM_CUSTOM_INCLUDE CONFIG_LV_MEM_CUSTOM_INCLUDE + #define LV_MEM_CUSTOM_INCLUDE "esp_heap_caps.h" //CONFIG_LV_MEM_CUSTOM_INCLUDE #else - #define LV_MEM_CUSTOM_INCLUDE /*Header for the dynamic memory function*/ + #define LV_MEM_CUSTOM_INCLUDE "esp_heap_caps.h" /*Header for the dynamic memory function*/ #endif #endif #ifndef LV_MEM_CUSTOM_ALLOC #ifdef CONFIG_LV_MEM_CUSTOM_ALLOC #define LV_MEM_CUSTOM_ALLOC CONFIG_LV_MEM_CUSTOM_ALLOC #else - #define LV_MEM_CUSTOM_ALLOC malloc + #define LV_MEM_CUSTOM_ALLOC(size) heap_caps_malloc((size), MALLOC_CAP_SPIRAM | MALLOC_CAP_8BIT) #endif #endif #ifndef LV_MEM_CUSTOM_FREE #ifdef CONFIG_LV_MEM_CUSTOM_FREE #define LV_MEM_CUSTOM_FREE CONFIG_LV_MEM_CUSTOM_FREE #else - #define LV_MEM_CUSTOM_FREE free + #define LV_MEM_CUSTOM_FREE(ptr) heap_caps_free(ptr) #endif #endif #ifndef LV_MEM_CUSTOM_REALLOC #ifdef CONFIG_LV_MEM_CUSTOM_REALLOC #define LV_MEM_CUSTOM_REALLOC CONFIG_LV_MEM_CUSTOM_REALLOC #else - #define LV_MEM_CUSTOM_REALLOC realloc + #define LV_MEM_CUSTOM_REALLOC(ptr, new_size) heap_caps_realloc((ptr), (new_size), MALLOC_CAP_SPIRAM | MALLOC_CAP_8BIT) #endif #endif #endif /*LV_MEM_CUSTOM*/ diff --git a/source/main/control.h b/source/main/control.h index a636c0c6..57955a5b 100644 --- a/source/main/control.h +++ b/source/main/control.h @@ -191,7 +191,7 @@ enum WiFiTxPower WIFI_TX_POWER_100 }; -enum ConfigTabs43B +enum ConfigTabs43BTonex { CONFIG_TAB_GATE, CONFIG_TAB_COMPRESSOR, @@ -203,6 +203,21 @@ enum ConfigTabs43B CONFIG_TAB_GLOBAL, }; +enum ConfigTabs43BValeton +{ + CONFIG_TAB_VAL_NR, + CONFIG_TAB_VAL_PRE, + CONFIG_TAB_VAL_DST, + CONFIG_TAB_VAL_AMP, + CONFIG_TAB_VAL_CAB, + CONFIG_TAB_VAL_EQ, + CONFIG_TAB_VAL_MOD, + CONFIG_TAB_VAL_DLY, + CONFIG_TAB_VAL_RVB, + CONFIG_TAB_VAL_NS, + CONFIG_TAB_VAL_GLOBAL, +}; + enum FootswitchLayouts { FOOTSWITCH_LAYOUT_1X2, // next/previous diff --git a/source/main/display.c b/source/main/display.c index 1144d803..6db2f8de 100644 --- a/source/main/display.c +++ b/source/main/display.c @@ -492,7 +492,20 @@ void action_close_settings_page(lv_event_t * e) *****************************************************************************/ void action_show_settings_page(lv_event_t * e) { - lv_scr_load_anim(objects.settings, LV_SCR_LOAD_ANIM_FADE_IN, 0, 0, false); + switch (usb_get_connected_modeller_type()) + { + case AMP_MODELLER_TONEX_ONE: // fallthrough + case AMP_MODELLER_TONEX: // fallthrough + default: + { + lv_scr_load_anim(objects.settings, LV_SCR_LOAD_ANIM_FADE_IN, 0, 0, false); + } break; + + case AMP_MODELLER_VALETON_GP5: + { + lv_scr_load_anim(objects.val_settings, LV_SCR_LOAD_ANIM_FADE_IN, 0, 0, false); + } break; + } } /**************************************************************************** diff --git a/source/main/display_valeton.c b/source/main/display_valeton.c index 4ee1ecdc..bbdef8ac 100644 --- a/source/main/display_valeton.c +++ b/source/main/display_valeton.c @@ -93,34 +93,43 @@ void valeton_show_settings_tab(lv_event_t * e) if (target == objects.ui_icon_val_pre) { - //todo + lv_tabview_set_act(objects.ui_val_settings_tab_view, CONFIG_TAB_VAL_PRE, LV_ANIM_OFF); } else if (target == objects.ui_icon_val_nr) { + lv_tabview_set_act(objects.ui_val_settings_tab_view, CONFIG_TAB_VAL_NR, LV_ANIM_OFF); } else if (target == objects.ui_icon_val_rvb) { + lv_tabview_set_act(objects.ui_val_settings_tab_view, CONFIG_TAB_VAL_RVB, LV_ANIM_OFF); } else if (target == objects.ui_icon_val_amp) { + lv_tabview_set_act(objects.ui_val_settings_tab_view, CONFIG_TAB_VAL_AMP, LV_ANIM_OFF); } else if (target == objects.ui_icon_val_cab) { + lv_tabview_set_act(objects.ui_val_settings_tab_view, CONFIG_TAB_VAL_CAB, LV_ANIM_OFF); } else if (target == objects.ui_icon_val_tc) { + lv_tabview_set_act(objects.ui_val_settings_tab_view, CONFIG_TAB_VAL_NR, LV_ANIM_OFF); } else if (target == objects.ui_icon_val_eq) { + lv_tabview_set_act(objects.ui_val_settings_tab_view, CONFIG_TAB_VAL_EQ, LV_ANIM_OFF); } else if (target == objects.ui_icon_val_mod) { + lv_tabview_set_act(objects.ui_val_settings_tab_view, CONFIG_TAB_VAL_MOD, LV_ANIM_OFF); } else if (target == objects.ui_icon_val_dly) { + lv_tabview_set_act(objects.ui_val_settings_tab_view, CONFIG_TAB_VAL_DLY, LV_ANIM_OFF); } else if (target == objects.ui_icon_val_dst) { + lv_tabview_set_act(objects.ui_val_settings_tab_view, CONFIG_TAB_VAL_DST, LV_ANIM_OFF); } #endif //CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI } diff --git a/source/main/ui_generated_800x480land/screens.c b/source/main/ui_generated_800x480land/screens.c index 3256226e..05e77e10 100644 --- a/source/main/ui_generated_800x480land/screens.c +++ b/source/main/ui_generated_800x480land/screens.c @@ -2458,12 +2458,2730 @@ void create_screen_settings() { void tick_screen_settings() { } +void create_screen_val_settings() { + lv_obj_t *obj = lv_obj_create(0); + objects.val_settings = obj; + lv_obj_set_pos(obj, 0, 0); + lv_obj_set_size(obj, 800, 480); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValSettingsTabView + lv_obj_t *obj = lv_tabview_create(parent_obj, LV_DIR_TOP, 60); + objects.ui_val_settings_tab_view = obj; + lv_obj_set_pos(obj, 5, 5); + lv_obj_set_size(obj, 790, 428); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_outline_color(obj, lv_color_hex(0xff3b3c40), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_outline_width(obj, 3, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(obj, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_opa(obj, 255, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_CHECKED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_tabview_get_tab_btns(parent_obj); + objects.obj7 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff2a2a2a), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_color(obj, lv_color_hex(0xffffffff), LV_PART_ITEMS | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_ITEMS | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_ITEMS | LV_STATE_DEFAULT); + lv_obj_set_style_border_side(obj, LV_BORDER_SIDE_LEFT, LV_PART_ITEMS | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff96969e), LV_PART_ITEMS | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff2196f3), LV_PART_ITEMS | LV_STATE_CHECKED); + } + { + // ui_ValNRTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "NR"); + objects.ui_val_nr_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffafafa), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_side(obj, LV_BORDER_SIDE_LEFT, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_PRESSED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValNRBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_block_label = obj; + lv_obj_set_pos(obj, 13, -148); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValNRBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_nr_block_switch = obj; + lv_obj_set_pos(obj, 168, -148); + lv_obj_set_size(obj, 80, 35); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValNRModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_nr_model_dropdown = obj; + lv_obj_set_pos(obj, 482, 8); + lv_obj_set_size(obj, 280, LV_SIZE_CONTENT); + lv_dropdown_set_options(obj, "Noise Gate"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj8 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValNRParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param0_label = obj; + lv_obj_set_pos(obj, 13, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValNRParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_nr_param0_slider = obj; + lv_obj_set_pos(obj, 168, -92); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNRParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param0_value = obj; + lv_obj_set_pos(obj, 703, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNRParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param1_label = obj; + lv_obj_set_pos(obj, 13, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValNRParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_nr_param1_slider = obj; + lv_obj_set_pos(obj, 168, -36); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNRParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param1_value = obj; + lv_obj_set_pos(obj, 703, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNRParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param2_label = obj; + lv_obj_set_pos(obj, 13, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValNRParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_nr_param2_slider = obj; + lv_obj_set_pos(obj, 168, 21); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNRParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param2_value = obj; + lv_obj_set_pos(obj, 703, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNRParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param3_label = obj; + lv_obj_set_pos(obj, 13, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValNRParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_nr_param3_slider = obj; + lv_obj_set_pos(obj, 168, 78); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNRParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param3_value = obj; + lv_obj_set_pos(obj, 703, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNRParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param4_label = obj; + lv_obj_set_pos(obj, 13, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValNRParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_nr_param4_slider = obj; + lv_obj_set_pos(obj, 168, 133); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNRParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param4_value = obj; + lv_obj_set_pos(obj, 703, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValPreTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Pre"); + objects.ui_val_pre_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValNPreBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_npre_block_label = obj; + lv_obj_set_pos(obj, 13, -148); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValPreBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_pre_block_switch = obj; + lv_obj_set_pos(obj, 168, -148); + lv_obj_set_size(obj, 80, 35); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValPreModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_pre_model_dropdown = obj; + lv_obj_set_pos(obj, 482, 8); + lv_obj_set_size(obj, 280, LV_SIZE_CONTENT); + lv_dropdown_set_options(obj, "Comp\nComp4\nBoost\nMicro Boost\nB-Boost\nToucher\nCrier\nOcta\nPitch\nDetune"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj9 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValPreParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param0_label = obj; + lv_obj_set_pos(obj, 13, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValPreParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_pre_param0_slider = obj; + lv_obj_set_pos(obj, 168, -92); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValPreParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param0_value = obj; + lv_obj_set_pos(obj, 703, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValPreParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param1_label = obj; + lv_obj_set_pos(obj, 13, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValPreParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_pre_param1_slider = obj; + lv_obj_set_pos(obj, 168, -36); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValPreParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param1_value = obj; + lv_obj_set_pos(obj, 703, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValPreParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param2_label = obj; + lv_obj_set_pos(obj, 13, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValPreParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_pre_param2_slider = obj; + lv_obj_set_pos(obj, 168, 21); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValPreParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param2_value = obj; + lv_obj_set_pos(obj, 703, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValPreParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param3_label = obj; + lv_obj_set_pos(obj, 13, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValPreParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_pre_param3_slider = obj; + lv_obj_set_pos(obj, 168, 78); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValPreParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param3_value = obj; + lv_obj_set_pos(obj, 703, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValPreParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param4_label = obj; + lv_obj_set_pos(obj, 13, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValPreParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_pre_param4_slider = obj; + lv_obj_set_pos(obj, 168, 133); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValPreParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param4_value = obj; + lv_obj_set_pos(obj, 703, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValDstTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Dst"); + objects.ui_val_dst_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValDstBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_block_label = obj; + lv_obj_set_pos(obj, 13, -148); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValDstBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_dst_block_switch = obj; + lv_obj_set_pos(obj, 168, -148); + lv_obj_set_size(obj, 80, 35); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValDstModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_dst_model_dropdown = obj; + lv_obj_set_pos(obj, 482, 8); + lv_obj_set_size(obj, 280, LV_SIZE_CONTENT); + lv_dropdown_set_options(obj, "Comp\nComp4\nBoost\nMicro Boost\nB-Boost\nToucher\nCrier\nOcta\nPitch\nDetune"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj10 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValDstParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param0_label = obj; + lv_obj_set_pos(obj, 13, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValDstParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dst_param0_slider = obj; + lv_obj_set_pos(obj, 168, -92); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDstParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param0_value = obj; + lv_obj_set_pos(obj, 703, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDstParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param1_label = obj; + lv_obj_set_pos(obj, 13, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValDstParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dst_param1_slider = obj; + lv_obj_set_pos(obj, 168, -36); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDstParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param1_value = obj; + lv_obj_set_pos(obj, 703, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDstParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param2_label = obj; + lv_obj_set_pos(obj, 13, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValDsteParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dste_param2_slider = obj; + lv_obj_set_pos(obj, 168, 21); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDstParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param2_value = obj; + lv_obj_set_pos(obj, 703, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDstParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param3_label = obj; + lv_obj_set_pos(obj, 13, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValDstParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dst_param3_slider = obj; + lv_obj_set_pos(obj, 168, 78); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDstParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param3_value = obj; + lv_obj_set_pos(obj, 703, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDstParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param4_label = obj; + lv_obj_set_pos(obj, 13, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValDstParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dst_param4_slider = obj; + lv_obj_set_pos(obj, 168, 133); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDstParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param4_value = obj; + lv_obj_set_pos(obj, 703, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValAmpTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Amp"); + objects.ui_val_amp_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValAmpBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_block_label = obj; + lv_obj_set_pos(obj, 13, -148); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValAmpBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_amp_block_switch = obj; + lv_obj_set_pos(obj, 168, -148); + lv_obj_set_size(obj, 80, 35); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValAmpModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_amp_model_dropdown = obj; + lv_obj_set_pos(obj, 482, 8); + lv_obj_set_size(obj, 280, LV_SIZE_CONTENT); + lv_dropdown_set_options(obj, "Tweedy\nBellman 59N\nDark Twin\nFoxy 30N\nJ-120 CL\nMatch CL\nL-Star CL\nUK 45\nUK 50JP\nUK 800\nBellman 59B\nFoxy 30TB\nSup Dual OD\nSolo100 OD\nZ38 OD\nBad KT OD\nJuiceW R100\nDizz VH\nDizz VH+\nEagle 120\nEV51\nSolo100 LD\nMess Dual V\nMess Dual M\nPower LD\nFlagman+\nBog Red V\nClassic Bass\nFoxy Bass\nMess Bass\nAC Pre 1\nAC Pre 2\n"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj11 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValAmpParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param0_label = obj; + lv_obj_set_pos(obj, 13, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValAmpParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_amp_param0_slider = obj; + lv_obj_set_pos(obj, 168, -92); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValAmpParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param0_value = obj; + lv_obj_set_pos(obj, 703, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValAmpParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param1_label = obj; + lv_obj_set_pos(obj, 13, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValAmpParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_amp_param1_slider = obj; + lv_obj_set_pos(obj, 168, -36); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValAmpParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param1_value = obj; + lv_obj_set_pos(obj, 703, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValAmpParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param2_label = obj; + lv_obj_set_pos(obj, 13, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValAmpParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_amp_param2_slider = obj; + lv_obj_set_pos(obj, 168, 21); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValAmpParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param2_value = obj; + lv_obj_set_pos(obj, 703, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValAmpParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param3_label = obj; + lv_obj_set_pos(obj, 13, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValAmpParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_amp_param3_slider = obj; + lv_obj_set_pos(obj, 168, 78); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValAmpParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param3_value = obj; + lv_obj_set_pos(obj, 703, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValAmpParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param4_label = obj; + lv_obj_set_pos(obj, 13, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValAmpParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_amp_param4_slider = obj; + lv_obj_set_pos(obj, 168, 133); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValAmpParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param4_value = obj; + lv_obj_set_pos(obj, 703, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValCabTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Cab"); + objects.ui_val_cab_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValCabBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_block_label = obj; + lv_obj_set_pos(obj, 13, -148); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValCabBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_cab_block_switch = obj; + lv_obj_set_pos(obj, 168, -148); + lv_obj_set_size(obj, 80, 35); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValCabModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_cab_model_dropdown = obj; + lv_obj_set_pos(obj, 482, 8); + lv_obj_set_size(obj, 280, LV_SIZE_CONTENT); + lv_dropdown_set_options(obj, "Twd CP\nDark VIT\nFoxy 1x12\nL-Star 1x12\nDark CS 2x12\nDark Twin 2x12\nSup Star 2x12\nJ-120 2x12\nFoxy 2x12\nUK Grn 2x12\nUK Grn 4x12\nBog 4x12\nDizz 4x12\nEV 4x12\nSolo 4x12\nMess 4x12\nEagle 4x12\nJuice 4x12\nBellman 2x12\nAmpg 4x10"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj12 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValCabParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param0_label = obj; + lv_obj_set_pos(obj, 13, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValCabParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_cab_param0_slider = obj; + lv_obj_set_pos(obj, 168, -92); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValCabParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param0_value = obj; + lv_obj_set_pos(obj, 703, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValCabParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param1_label = obj; + lv_obj_set_pos(obj, 13, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValCabParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_cab_param1_slider = obj; + lv_obj_set_pos(obj, 168, -36); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValCabParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param1_value = obj; + lv_obj_set_pos(obj, 703, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValCabParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param2_label = obj; + lv_obj_set_pos(obj, 13, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValCabParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_cab_param2_slider = obj; + lv_obj_set_pos(obj, 168, 21); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValCabParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param2_value = obj; + lv_obj_set_pos(obj, 703, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValCabParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param3_label = obj; + lv_obj_set_pos(obj, 13, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValCabParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_cab_param3_slider = obj; + lv_obj_set_pos(obj, 168, 78); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValCabParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param3_value = obj; + lv_obj_set_pos(obj, 703, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValCabParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param4_label = obj; + lv_obj_set_pos(obj, 13, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValCabParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_cab_param4_slider = obj; + lv_obj_set_pos(obj, 168, 133); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValCabParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param4_value = obj; + lv_obj_set_pos(obj, 703, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValEQTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "EQ"); + objects.ui_val_eq_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValEQBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_block_label = obj; + lv_obj_set_pos(obj, 13, -148); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValEQBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_eq_block_switch = obj; + lv_obj_set_pos(obj, 168, -148); + lv_obj_set_size(obj, 80, 35); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValEQModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_eq_model_dropdown = obj; + lv_obj_set_pos(obj, 482, 8); + lv_obj_set_size(obj, 280, LV_SIZE_CONTENT); + lv_dropdown_set_options(obj, "Guitar 1\nGuitar 2\nBass 1\nBass 2\nMess"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj13 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValEQParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param0_label = obj; + lv_obj_set_pos(obj, 13, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValEQParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_eq_param0_slider = obj; + lv_obj_set_pos(obj, 168, -92); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValEQParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param0_value = obj; + lv_obj_set_pos(obj, 703, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValEQParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param1_label = obj; + lv_obj_set_pos(obj, 13, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValEQParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_eq_param1_slider = obj; + lv_obj_set_pos(obj, 168, -36); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValEQParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param1_value = obj; + lv_obj_set_pos(obj, 703, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValEQParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param2_label = obj; + lv_obj_set_pos(obj, 13, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValEQParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_eq_param2_slider = obj; + lv_obj_set_pos(obj, 168, 21); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValEQParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param2_value = obj; + lv_obj_set_pos(obj, 703, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValEQParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param3_label = obj; + lv_obj_set_pos(obj, 13, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValEQParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_eq_param3_slider = obj; + lv_obj_set_pos(obj, 168, 78); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValEQParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param3_value = obj; + lv_obj_set_pos(obj, 703, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValEQParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param4_label = obj; + lv_obj_set_pos(obj, 13, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValEQParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_eq_param4_slider = obj; + lv_obj_set_pos(obj, 168, 133); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValEQParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param4_value = obj; + lv_obj_set_pos(obj, 703, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValModTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Mod"); + objects.ui_val_mod_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValModBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_block_label = obj; + lv_obj_set_pos(obj, 13, -148); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValModBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_mod_block_switch = obj; + lv_obj_set_pos(obj, 168, -148); + lv_obj_set_size(obj, 80, 35); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValModModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_mod_model_dropdown = obj; + lv_obj_set_pos(obj, 482, 8); + lv_obj_set_size(obj, 280, LV_SIZE_CONTENT); + lv_dropdown_set_options(obj, "A-Chorus\nB-Chorus\nJet\nN-Jet\nO-Phase\nM-Vibe\nV-Roto\nVibrato\nO-Trem\nSine Trem\nBias Trem"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj14 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValModParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param0_label = obj; + lv_obj_set_pos(obj, 13, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValModParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_mod_param0_slider = obj; + lv_obj_set_pos(obj, 168, -92); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValModParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param0_value = obj; + lv_obj_set_pos(obj, 703, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValModParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param1_label = obj; + lv_obj_set_pos(obj, 13, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValModParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_mod_param1_slider = obj; + lv_obj_set_pos(obj, 168, -36); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValModParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param1_value = obj; + lv_obj_set_pos(obj, 703, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValModParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param2_label = obj; + lv_obj_set_pos(obj, 13, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValModParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_mod_param2_slider = obj; + lv_obj_set_pos(obj, 168, 21); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValModParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param2_value = obj; + lv_obj_set_pos(obj, 703, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValModParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param3_label = obj; + lv_obj_set_pos(obj, 13, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValModParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_mod_param3_slider = obj; + lv_obj_set_pos(obj, 168, 78); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValModParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param3_value = obj; + lv_obj_set_pos(obj, 703, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValModParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param4_label = obj; + lv_obj_set_pos(obj, 13, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValModParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_mod_param4_slider = obj; + lv_obj_set_pos(obj, 168, 133); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValModParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param4_value = obj; + lv_obj_set_pos(obj, 703, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValDlyTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Dly"); + objects.ui_val_dly_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValDlyBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_block_label = obj; + lv_obj_set_pos(obj, 13, -148); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValDlyBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_dly_block_switch = obj; + lv_obj_set_pos(obj, 168, -148); + lv_obj_set_size(obj, 80, 35); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValDlyModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_dly_model_dropdown = obj; + lv_obj_set_pos(obj, 482, 8); + lv_obj_set_size(obj, 280, LV_SIZE_CONTENT); + lv_dropdown_set_options(obj, "Pure\nAnalog\nSlapback\nSweet Echo\nTape\nTube\nRev Echo\nRing Echo\nSweep Echo\nPing Pong"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj15 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValDlyParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param0_label = obj; + lv_obj_set_pos(obj, 13, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValDlyParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dly_param0_slider = obj; + lv_obj_set_pos(obj, 168, -92); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDlyParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param0_value = obj; + lv_obj_set_pos(obj, 703, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDlyParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param1_label = obj; + lv_obj_set_pos(obj, 13, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValDlyParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dly_param1_slider = obj; + lv_obj_set_pos(obj, 168, -36); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDlyParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param1_value = obj; + lv_obj_set_pos(obj, 703, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDlyParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param2_label = obj; + lv_obj_set_pos(obj, 13, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValDlyParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dly_param2_slider = obj; + lv_obj_set_pos(obj, 168, 21); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDlyParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param2_value = obj; + lv_obj_set_pos(obj, 703, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDlyParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param3_label = obj; + lv_obj_set_pos(obj, 13, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValDlyParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dly_param3_slider = obj; + lv_obj_set_pos(obj, 168, 78); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDlyParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param3_value = obj; + lv_obj_set_pos(obj, 703, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDlyParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param4_label = obj; + lv_obj_set_pos(obj, 13, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValDlyParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dly_param4_slider = obj; + lv_obj_set_pos(obj, 168, 133); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDlyParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param4_value = obj; + lv_obj_set_pos(obj, 703, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValRvbTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Rvb"); + objects.ui_val_rvb_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValRvbBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_block_label = obj; + lv_obj_set_pos(obj, 13, -148); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValRvbBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_rvb_block_switch = obj; + lv_obj_set_pos(obj, 168, -148); + lv_obj_set_size(obj, 80, 35); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValRvbModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_rvb_model_dropdown = obj; + lv_obj_set_pos(obj, 482, 8); + lv_obj_set_size(obj, 280, LV_SIZE_CONTENT); + lv_dropdown_set_options(obj, "Air\nRoom\nHall\nChurch\nPlate L\nPlate\nSpring\nN-Star\nDeepsea\nSweet Space"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj16 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValRvbParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param0_label = obj; + lv_obj_set_pos(obj, 13, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValRvbParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_rvb_param0_slider = obj; + lv_obj_set_pos(obj, 168, -92); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValRvbParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param0_value = obj; + lv_obj_set_pos(obj, 703, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValRvbParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param1_label = obj; + lv_obj_set_pos(obj, 13, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValRvbParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_rvb_param1_slider = obj; + lv_obj_set_pos(obj, 168, -36); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValRvbParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param1_value = obj; + lv_obj_set_pos(obj, 703, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValRvbParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param2_label = obj; + lv_obj_set_pos(obj, 13, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValRvbParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_rvb_param2_slider = obj; + lv_obj_set_pos(obj, 168, 21); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValRvbParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param2_value = obj; + lv_obj_set_pos(obj, 703, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValRvbParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param3_label = obj; + lv_obj_set_pos(obj, 13, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValRvbParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_rvb_param3_slider = obj; + lv_obj_set_pos(obj, 168, 78); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValRvbParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param3_value = obj; + lv_obj_set_pos(obj, 703, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValRvbParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param4_label = obj; + lv_obj_set_pos(obj, 13, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValRvbParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_rvb_param4_slider = obj; + lv_obj_set_pos(obj, 168, 133); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValRvbParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param4_value = obj; + lv_obj_set_pos(obj, 703, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValNSTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "NS"); + objects.ui_val_ns_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValNSBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_block_label = obj; + lv_obj_set_pos(obj, 13, -148); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValNSBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_ns_block_switch = obj; + lv_obj_set_pos(obj, 168, -148); + lv_obj_set_size(obj, 80, 35); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValNSModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_ns_model_dropdown = obj; + lv_obj_set_pos(obj, 482, 8); + lv_obj_set_size(obj, 280, LV_SIZE_CONTENT); + lv_dropdown_set_options(obj, "Todo"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj17 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValNSParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param0_label = obj; + lv_obj_set_pos(obj, 13, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValNSParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_ns_param0_slider = obj; + lv_obj_set_pos(obj, 168, -92); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNSParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param0_value = obj; + lv_obj_set_pos(obj, 703, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNSParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param1_label = obj; + lv_obj_set_pos(obj, 13, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValNSParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_ns_param1_slider = obj; + lv_obj_set_pos(obj, 168, -36); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNSParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param1_value = obj; + lv_obj_set_pos(obj, 703, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNSParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param2_label = obj; + lv_obj_set_pos(obj, 13, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValNSParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_ns_param2_slider = obj; + lv_obj_set_pos(obj, 168, 21); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNSParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param2_value = obj; + lv_obj_set_pos(obj, 703, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNSParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param3_label = obj; + lv_obj_set_pos(obj, 13, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValNSParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_ns_param3_slider = obj; + lv_obj_set_pos(obj, 168, 78); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNSParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param3_value = obj; + lv_obj_set_pos(obj, 703, 77); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNSParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param4_label = obj; + lv_obj_set_pos(obj, 13, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValNSParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_ns_param4_slider = obj; + lv_obj_set_pos(obj, 168, 133); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNSParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param4_value = obj; + lv_obj_set_pos(obj, 703, 133); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValGlobTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Glob"); + objects.ui_val_glob_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValGlobNoCabLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_glob_no_cab_label = obj; + lv_obj_set_pos(obj, 13, -148); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "No Cab"); + } + { + // ui_ValGlobNoCabSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_glob_no_cab_switch = obj; + lv_obj_set_pos(obj, 168, -148); + lv_obj_set_size(obj, 80, 35); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValGlobInputLevelLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_glob_input_level_label = obj; + lv_obj_set_pos(obj, 13, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Input Level"); + } + { + // ui_ValGlobInputLevelSlider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_glob_input_level_slider = obj; + lv_obj_set_pos(obj, 168, -92); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValGlobInputLevelValue + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_glob_input_level_value = obj; + lv_obj_set_pos(obj, 703, -92); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + } + } + { + // ui_ValCloseimage + lv_obj_t *obj = lv_img_create(parent_obj); + objects.ui_val_closeimage = obj; + lv_obj_set_pos(obj, 354, 410); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_img_set_src(obj, &img_tick); + lv_obj_add_event_cb(obj, action_close_settings_page, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + } + } + + tick_screen_val_settings(); +} + +void tick_screen_val_settings() { +} + typedef void (*tick_screen_func_t)(); tick_screen_func_t tick_screen_funcs[] = { tick_screen_screen1, tick_screen_settings, + tick_screen_val_settings, }; void tick_screen(int screen_index) { tick_screen_funcs[screen_index](); @@ -2479,4 +5197,5 @@ void create_screens() { create_screen_screen1(); create_screen_settings(); + create_screen_val_settings(); } diff --git a/source/main/ui_generated_800x480land/screens.h b/source/main/ui_generated_800x480land/screens.h index a0bee51a..638dc661 100644 --- a/source/main/ui_generated_800x480land/screens.h +++ b/source/main/ui_generated_800x480land/screens.h @@ -10,6 +10,7 @@ extern "C" { typedef struct _objects_t { lv_obj_t *screen1; lv_obj_t *settings; + lv_obj_t *val_settings; lv_obj_t *ui_touch_gesture_container; lv_obj_t *ui_top_panel; lv_obj_t *ui_usb_status_fail; @@ -205,6 +206,215 @@ typedef struct _objects_t { lv_obj_t *ui_volume_slider; lv_obj_t *ui_volume_value; lv_obj_t *ui_closeimage; + lv_obj_t *ui_val_settings_tab_view; + lv_obj_t *obj7; + lv_obj_t *ui_val_nr_tab; + lv_obj_t *ui_val_nr_block_label; + lv_obj_t *ui_val_nr_block_switch; + lv_obj_t *ui_val_nr_model_dropdown; + lv_obj_t *obj8; + lv_obj_t *ui_val_nr_param0_label; + lv_obj_t *ui_val_nr_param0_slider; + lv_obj_t *ui_val_nr_param0_value; + lv_obj_t *ui_val_nr_param1_label; + lv_obj_t *ui_val_nr_param1_slider; + lv_obj_t *ui_val_nr_param1_value; + lv_obj_t *ui_val_nr_param2_label; + lv_obj_t *ui_val_nr_param2_slider; + lv_obj_t *ui_val_nr_param2_value; + lv_obj_t *ui_val_nr_param3_label; + lv_obj_t *ui_val_nr_param3_slider; + lv_obj_t *ui_val_nr_param3_value; + lv_obj_t *ui_val_nr_param4_label; + lv_obj_t *ui_val_nr_param4_slider; + lv_obj_t *ui_val_nr_param4_value; + lv_obj_t *ui_val_pre_tab; + lv_obj_t *ui_val_npre_block_label; + lv_obj_t *ui_val_pre_block_switch; + lv_obj_t *ui_val_pre_model_dropdown; + lv_obj_t *obj9; + lv_obj_t *ui_val_pre_param0_label; + lv_obj_t *ui_val_pre_param0_slider; + lv_obj_t *ui_val_pre_param0_value; + lv_obj_t *ui_val_pre_param1_label; + lv_obj_t *ui_val_pre_param1_slider; + lv_obj_t *ui_val_pre_param1_value; + lv_obj_t *ui_val_pre_param2_label; + lv_obj_t *ui_val_pre_param2_slider; + lv_obj_t *ui_val_pre_param2_value; + lv_obj_t *ui_val_pre_param3_label; + lv_obj_t *ui_val_pre_param3_slider; + lv_obj_t *ui_val_pre_param3_value; + lv_obj_t *ui_val_pre_param4_label; + lv_obj_t *ui_val_pre_param4_slider; + lv_obj_t *ui_val_pre_param4_value; + lv_obj_t *ui_val_dst_tab; + lv_obj_t *ui_val_dst_block_label; + lv_obj_t *ui_val_dst_block_switch; + lv_obj_t *ui_val_dst_model_dropdown; + lv_obj_t *obj10; + lv_obj_t *ui_val_dst_param0_label; + lv_obj_t *ui_val_dst_param0_slider; + lv_obj_t *ui_val_dst_param0_value; + lv_obj_t *ui_val_dst_param1_label; + lv_obj_t *ui_val_dst_param1_slider; + lv_obj_t *ui_val_dst_param1_value; + lv_obj_t *ui_val_dst_param2_label; + lv_obj_t *ui_val_dste_param2_slider; + lv_obj_t *ui_val_dst_param2_value; + lv_obj_t *ui_val_dst_param3_label; + lv_obj_t *ui_val_dst_param3_slider; + lv_obj_t *ui_val_dst_param3_value; + lv_obj_t *ui_val_dst_param4_label; + lv_obj_t *ui_val_dst_param4_slider; + lv_obj_t *ui_val_dst_param4_value; + lv_obj_t *ui_val_amp_tab; + lv_obj_t *ui_val_amp_block_label; + lv_obj_t *ui_val_amp_block_switch; + lv_obj_t *ui_val_amp_model_dropdown; + lv_obj_t *obj11; + lv_obj_t *ui_val_amp_param0_label; + lv_obj_t *ui_val_amp_param0_slider; + lv_obj_t *ui_val_amp_param0_value; + lv_obj_t *ui_val_amp_param1_label; + lv_obj_t *ui_val_amp_param1_slider; + lv_obj_t *ui_val_amp_param1_value; + lv_obj_t *ui_val_amp_param2_label; + lv_obj_t *ui_val_amp_param2_slider; + lv_obj_t *ui_val_amp_param2_value; + lv_obj_t *ui_val_amp_param3_label; + lv_obj_t *ui_val_amp_param3_slider; + lv_obj_t *ui_val_amp_param3_value; + lv_obj_t *ui_val_amp_param4_label; + lv_obj_t *ui_val_amp_param4_slider; + lv_obj_t *ui_val_amp_param4_value; + lv_obj_t *ui_val_cab_tab; + lv_obj_t *ui_val_cab_block_label; + lv_obj_t *ui_val_cab_block_switch; + lv_obj_t *ui_val_cab_model_dropdown; + lv_obj_t *obj12; + lv_obj_t *ui_val_cab_param0_label; + lv_obj_t *ui_val_cab_param0_slider; + lv_obj_t *ui_val_cab_param0_value; + lv_obj_t *ui_val_cab_param1_label; + lv_obj_t *ui_val_cab_param1_slider; + lv_obj_t *ui_val_cab_param1_value; + lv_obj_t *ui_val_cab_param2_label; + lv_obj_t *ui_val_cab_param2_slider; + lv_obj_t *ui_val_cab_param2_value; + lv_obj_t *ui_val_cab_param3_label; + lv_obj_t *ui_val_cab_param3_slider; + lv_obj_t *ui_val_cab_param3_value; + lv_obj_t *ui_val_cab_param4_label; + lv_obj_t *ui_val_cab_param4_slider; + lv_obj_t *ui_val_cab_param4_value; + lv_obj_t *ui_val_eq_tab; + lv_obj_t *ui_val_eq_block_label; + lv_obj_t *ui_val_eq_block_switch; + lv_obj_t *ui_val_eq_model_dropdown; + lv_obj_t *obj13; + lv_obj_t *ui_val_eq_param0_label; + lv_obj_t *ui_val_eq_param0_slider; + lv_obj_t *ui_val_eq_param0_value; + lv_obj_t *ui_val_eq_param1_label; + lv_obj_t *ui_val_eq_param1_slider; + lv_obj_t *ui_val_eq_param1_value; + lv_obj_t *ui_val_eq_param2_label; + lv_obj_t *ui_val_eq_param2_slider; + lv_obj_t *ui_val_eq_param2_value; + lv_obj_t *ui_val_eq_param3_label; + lv_obj_t *ui_val_eq_param3_slider; + lv_obj_t *ui_val_eq_param3_value; + lv_obj_t *ui_val_eq_param4_label; + lv_obj_t *ui_val_eq_param4_slider; + lv_obj_t *ui_val_eq_param4_value; + lv_obj_t *ui_val_mod_tab; + lv_obj_t *ui_val_mod_block_label; + lv_obj_t *ui_val_mod_block_switch; + lv_obj_t *ui_val_mod_model_dropdown; + lv_obj_t *obj14; + lv_obj_t *ui_val_mod_param0_label; + lv_obj_t *ui_val_mod_param0_slider; + lv_obj_t *ui_val_mod_param0_value; + lv_obj_t *ui_val_mod_param1_label; + lv_obj_t *ui_val_mod_param1_slider; + lv_obj_t *ui_val_mod_param1_value; + lv_obj_t *ui_val_mod_param2_label; + lv_obj_t *ui_val_mod_param2_slider; + lv_obj_t *ui_val_mod_param2_value; + lv_obj_t *ui_val_mod_param3_label; + lv_obj_t *ui_val_mod_param3_slider; + lv_obj_t *ui_val_mod_param3_value; + lv_obj_t *ui_val_mod_param4_label; + lv_obj_t *ui_val_mod_param4_slider; + lv_obj_t *ui_val_mod_param4_value; + lv_obj_t *ui_val_dly_tab; + lv_obj_t *ui_val_dly_block_label; + lv_obj_t *ui_val_dly_block_switch; + lv_obj_t *ui_val_dly_model_dropdown; + lv_obj_t *obj15; + lv_obj_t *ui_val_dly_param0_label; + lv_obj_t *ui_val_dly_param0_slider; + lv_obj_t *ui_val_dly_param0_value; + lv_obj_t *ui_val_dly_param1_label; + lv_obj_t *ui_val_dly_param1_slider; + lv_obj_t *ui_val_dly_param1_value; + lv_obj_t *ui_val_dly_param2_label; + lv_obj_t *ui_val_dly_param2_slider; + lv_obj_t *ui_val_dly_param2_value; + lv_obj_t *ui_val_dly_param3_label; + lv_obj_t *ui_val_dly_param3_slider; + lv_obj_t *ui_val_dly_param3_value; + lv_obj_t *ui_val_dly_param4_label; + lv_obj_t *ui_val_dly_param4_slider; + lv_obj_t *ui_val_dly_param4_value; + lv_obj_t *ui_val_rvb_tab; + lv_obj_t *ui_val_rvb_block_label; + lv_obj_t *ui_val_rvb_block_switch; + lv_obj_t *ui_val_rvb_model_dropdown; + lv_obj_t *obj16; + lv_obj_t *ui_val_rvb_param0_label; + lv_obj_t *ui_val_rvb_param0_slider; + lv_obj_t *ui_val_rvb_param0_value; + lv_obj_t *ui_val_rvb_param1_label; + lv_obj_t *ui_val_rvb_param1_slider; + lv_obj_t *ui_val_rvb_param1_value; + lv_obj_t *ui_val_rvb_param2_label; + lv_obj_t *ui_val_rvb_param2_slider; + lv_obj_t *ui_val_rvb_param2_value; + lv_obj_t *ui_val_rvb_param3_label; + lv_obj_t *ui_val_rvb_param3_slider; + lv_obj_t *ui_val_rvb_param3_value; + lv_obj_t *ui_val_rvb_param4_label; + lv_obj_t *ui_val_rvb_param4_slider; + lv_obj_t *ui_val_rvb_param4_value; + lv_obj_t *ui_val_ns_tab; + lv_obj_t *ui_val_ns_block_label; + lv_obj_t *ui_val_ns_block_switch; + lv_obj_t *ui_val_ns_model_dropdown; + lv_obj_t *obj17; + lv_obj_t *ui_val_ns_param0_label; + lv_obj_t *ui_val_ns_param0_slider; + lv_obj_t *ui_val_ns_param0_value; + lv_obj_t *ui_val_ns_param1_label; + lv_obj_t *ui_val_ns_param1_slider; + lv_obj_t *ui_val_ns_param1_value; + lv_obj_t *ui_val_ns_param2_label; + lv_obj_t *ui_val_ns_param2_slider; + lv_obj_t *ui_val_ns_param2_value; + lv_obj_t *ui_val_ns_param3_label; + lv_obj_t *ui_val_ns_param3_slider; + lv_obj_t *ui_val_ns_param3_value; + lv_obj_t *ui_val_ns_param4_label; + lv_obj_t *ui_val_ns_param4_slider; + lv_obj_t *ui_val_ns_param4_value; + lv_obj_t *ui_val_glob_tab; + lv_obj_t *ui_val_glob_no_cab_label; + lv_obj_t *ui_val_glob_no_cab_switch; + lv_obj_t *ui_val_glob_input_level_label; + lv_obj_t *ui_val_glob_input_level_slider; + lv_obj_t *ui_val_glob_input_level_value; + lv_obj_t *ui_val_closeimage; } objects_t; extern objects_t objects; @@ -212,6 +422,7 @@ extern objects_t objects; enum ScreensEnum { SCREEN_ID_SCREEN1 = 1, SCREEN_ID_SETTINGS = 2, + SCREEN_ID_VAL_SETTINGS = 3, }; void create_screen_screen1(); @@ -220,6 +431,9 @@ void tick_screen_screen1(); void create_screen_settings(); void tick_screen_settings(); +void create_screen_val_settings(); +void tick_screen_val_settings(); + void tick_screen_by_id(enum ScreensEnum screenId); void tick_screen(int screen_index); diff --git a/source/main/usb_valeton_gp5.c b/source/main/usb_valeton_gp5.c index 5af99d14..bdb80c64 100644 --- a/source/main/usb_valeton_gp5.c +++ b/source/main/usb_valeton_gp5.c @@ -135,10 +135,9 @@ typedef struct typedef struct __attribute__ ((packed)) { - uint16_t param_id; - int16_t value_raw; - uint32_t reserved; -} ParamEntry_t; + uint8_t effect_index; + uint32_t byte_sequence; +} EffectMapEntry_t; /* ** Static vars @@ -151,6 +150,248 @@ static volatile tInputBufferEntry* InputBuffers; static uint8_t* ProcessingBuffer; static uint8_t* TransmitBuffer; +static const EffectMapEntry_t effect_map_nr[] = { + {VALETON_EFFECT_NR_GATE, 0x1B000000}, + }; + +static const EffectMapEntry_t effect_map_pre[] = { + {VALETON_EFFECT_PRE_COMP, 0x00000000}, + {VALETON_EFFECT_PRE_COMP4, 0x01000000}, + {VALETON_EFFECT_PRE_BOOST, 0x1A000000}, + {VALETON_EFFECT_PRE_MICRO_BOOST, 0x14000000}, + {VALETON_EFFECT_PRE_B_BOOST, 0x0B000000}, + {VALETON_EFFECT_PRE_TOUCHER, 0x0F000001}, + {VALETON_EFFECT_PRE_CRIER, 0x15000001}, + {VALETON_EFFECT_PRE_OCTA, 0x21000001}, + {VALETON_EFFECT_PRE_PITCH, 0x23000001}, + {VALETON_EFFECT_PRE_DETUNE, 0x29000001}, + { 0xFF, 0xFFFFFFFF}, // end of table + }; + +static const EffectMapEntry_t effect_map_dst[] = { + { VALETON_EFFECT_DIST_GREEN_OD, 0x00000003}, + { VALETON_EFFECT_DIST_YELLOW_OD, 0x02000003}, + { VALETON_EFFECT_DIST_SUPER_OD, 0x06000003}, + { VALETON_EFFECT_DIST_SM_DIST, 0x2A000003}, + { VALETON_EFFECT_DIST_PLUSTORTION, 0x29000003}, + { VALETON_EFFECT_DIST_LA_CHARGER, 0x2B000003}, + { VALETON_EFFECT_DIST_DARKTALE, 0x22000003}, + { VALETON_EFFECT_DIST_SORA_FUZZ, 0x24000003}, + { VALETON_EFFECT_DIST_RED_HAZE, 0x40000003}, + { VALETON_EFFECT_DIST_BASS_OD, 0x41000003}, //todo + { 0xFF, 0xFFFFFFFF}, // end of table + }; + + +static const EffectMapEntry_t effect_map_amp[] = { + { VALETON_EFFECT_AMP_TWEEDY, 0x01000007}, + { VALETON_EFFECT_AMP_BELLMAN_59N, 0x03000007}, + { VALETON_EFFECT_AMP_DARK_TWIN, 0x04000007}, + { VALETON_EFFECT_AMP_FOXY_30N, 0x11000007}, + { VALETON_EFFECT_AMP_J_120_CL, 0x14000007}, + { VALETON_EFFECT_AMP_MATCH_CL, 0x15000007}, + { VALETON_EFFECT_AMP_L_STAR_CL, 0x19000007}, + { VALETON_EFFECT_AMP_UK_45, 0x2A000007}, + { VALETON_EFFECT_AMP_UK_50JP, 0x2F000007}, + { VALETON_EFFECT_AMP_UK_800, 0x35000007}, + { VALETON_EFFECT_AMP_BELLMAN_59B, 0x24000007}, + { VALETON_EFFECT_AMP_FOXY_30TB, 0x27000007}, + { VALETON_EFFECT_AMP_SUPDUAL_OD, 0x28000007}, + { VALETON_EFFECT_AMP_SOLO100_OD, 0x47000007}, + { VALETON_EFFECT_AMP_Z38_OD, 0x49000007}, + { VALETON_EFFECT_AMP_BAD_KT_OD, 0x4B000007}, + { VALETON_EFFECT_AMP_JUICEW_R100, 0x53000007}, + { VALETON_EFFECT_AMP_DIZZ_VH, 0x65000007}, + { VALETON_EFFECT_AMP_DIZZ_VH_PLUS, 0x6A000007}, + { VALETON_EFFECT_AMP_EAGLE_120, 0x5F000007}, + { VALETON_EFFECT_AMP_EV_51, 0x65000007}, + { VALETON_EFFECT_AMP_SOLO100_LD, 0x6A000007}, + { VALETON_EFFECT_AMP_MESS_DUALV, 0x5F000007}, + { VALETON_EFFECT_AMP_MESS_DUALM, 0x5A000007}, + { VALETON_EFFECT_AMP_POWER_LD, 0x59000007}, + { VALETON_EFFECT_AMP_FLAGMAN_PLUS, 0x68000007}, + { VALETON_EFFECT_AMP_BOG_REDV, 0x69000007}, + { VALETON_EFFECT_AMP_CLASSIC_BASS, 0x63000007}, + { VALETON_EFFECT_AMP_FOXY_BASS, 0x5D000007}, + { VALETON_EFFECT_AMP_MESS_BASS, 0x6D000007}, + { VALETON_EFFECT_AMP_AC_PRE1, 0x73000008}, + { VALETON_EFFECT_AMP_AC_PRE2, 0x75000008}, + { 0xFF, 0xFFFFFFFF}, // end of table + }; + +static const EffectMapEntry_t effect_map_cab[] = { + { VALETON_EFFECT_CAB_TWD_CP, 0x0100000A}, + { VALETON_EFFECT_CAB_DARK_VIT, 0x0400000A}, + { VALETON_EFFECT_CAB_FOXY_1X12, 0x0800000A}, + { VALETON_EFFECT_CAB_L_STAR_1X12, 0x0900000A}, + { VALETON_EFFECT_CAB_DARK_CS_2X12, 0x1B00000A}, + { VALETON_EFFECT_CAB_DARK_TWIN_2X12, 0x1200000A}, + { VALETON_EFFECT_CAB_SUP_STAR_2X12, 0x1900000A}, + { VALETON_EFFECT_CAB_J_120_2X12, 0x1100000A}, + { VALETON_EFFECT_CAB_FOXY_2X12, 0x0F00000A}, + { VALETON_EFFECT_CAB_UK_GRN_2X12, 0x1300000A}, + { VALETON_EFFECT_CAB_UK_GRN_4X12, 0x2200000A}, + { VALETON_EFFECT_CAB_BOG_4X12, 0x2500000A}, + { VALETON_EFFECT_CAB_DIZZ_4X12, 0x2E00000A}, + { VALETON_EFFECT_CAB_EV_4X12, 0x2000000A}, + { VALETON_EFFECT_CAB_SOLO_4X12, 0x2800000A}, + { VALETON_EFFECT_CAB_MESS_4X12, 0x2400000A}, + { VALETON_EFFECT_CAB_EAGLE_4X12, 0x2600000A}, + { VALETON_EFFECT_CAB_JUICE_4X12, 0x2900000A}, + { VALETON_EFFECT_CAB_BELLMAN_2X12, 0x1600000A}, + { VALETON_EFFECT_CAB_AMPG_4X10, 0x3800000A}, + { 0xFF, 0xFFFFFFFF}, // end of table + }; + +static const EffectMapEntry_t effect_map_eq[] = { + { VALETON_EFFECT_EQ_GUITAR_EQ1, 0x35000001}, + { VALETON_EFFECT_EQ_GUITAR_EQ2, 0x36000001}, + { VALETON_EFFECT_EQ_BASS_EQ1, 0x39000001}, + { VALETON_EFFECT_EQ_BASS_EQ2, 0x3A000001}, + { VALETON_EFFECT_EQ_MESS_EQ, 0x3C000001}, + { 0xFF, 0xFFFFFFFF}, // end of table + }; + +static const EffectMapEntry_t effect_map_mod[] = { + { VALETON_EFFECT_MOD_A_CHORUS, 0x00000004}, + { VALETON_EFFECT_MOD_B_CHORUS, 0x08000004}, + { VALETON_EFFECT_MOD_JET, 0x11000004}, + { VALETON_EFFECT_MOD_N_JET, 0x13000004}, + { VALETON_EFFECT_MOD_O_PHASE, 0x19000004}, + { VALETON_EFFECT_MOD_M_VIBE, 0x1F000004}, + { VALETON_EFFECT_MOD_V_ROTO, 0x15000004}, + { VALETON_EFFECT_MOD_VIBRATO, 0x17000004}, + { VALETON_EFFECT_MOD_O_TREM, 0x21000004}, + { VALETON_EFFECT_MOD_SINE_TREM, 0x26000004}, + { VALETON_EFFECT_MOD_BIAS_TREM, 0x28000004}, + { 0xFF, 0xFFFFFFFF}, // end of table + }; + +static const EffectMapEntry_t effect_map_dly[] = { + { VALETON_EFFECT_DLY_PURE, 0x0000000B}, + { VALETON_EFFECT_DLY_ANALOG, 0x0100000B}, + { VALETON_EFFECT_DLY_SLAPBACK, 0x0500000B}, + { VALETON_EFFECT_DLY_SWEET_ECHO, 0x0D00000B}, + { VALETON_EFFECT_DLY_TAPE, 0x0200000B}, + { VALETON_EFFECT_DLY_TUBE, 0x0B00000B}, + { VALETON_EFFECT_DLY_REV_ECHO, 0x1300000B}, + { VALETON_EFFECT_DLY_RING_ECHO, 0x0900000B}, + { VALETON_EFFECT_DLY_SWEEP_ECHO, 0x0600000B}, + { VALETON_EFFECT_DLY_PING_PONG, 0x0400000B}, + { 0xFF, 0xFFFFFFFF}, // end of table + }; + +static const EffectMapEntry_t effect_map_rvb[] = { + { VALETON_EFFECT_RVB_AIR, 0x0B00000C}, + { VALETON_EFFECT_RVB_ROOM, 0x0000000C}, + { VALETON_EFFECT_RVB_HALL, 0x0100000C}, + { VALETON_EFFECT_RVB_CHURCH, 0x0200000C}, + { VALETON_EFFECT_RVB_PLATE_L, 0x1000000C}, + { VALETON_EFFECT_RVB_PLATE, 0x0F00000C}, + { VALETON_EFFECT_RVB_SPRING, 0x0400000C}, + { VALETON_EFFECT_RVB_N_STAR, 0x0600000C}, + { VALETON_EFFECT_RVB_DEEPSEA, 0x0700000C}, + { VALETON_EFFECT_RVB_SWEET_SPACE, 0x1500000C}, + { 0xFF, 0xFFFFFFFF}, // end of table + }; + +static const EffectMapEntry_t effect_map_ns[] = { + { 0, 0x0000000F}, + { 1, 0x0100000F}, + { 2, 0x0200000F}, + { 3, 0x0300000F}, + { 4, 0x0400000F}, + { 5, 0x0500000F}, + { 6, 0x0600000F}, + { 7, 0x0700000F}, + { 8, 0x0800000F}, + { 9, 0x0900000F}, + { 10, 0x0A00000F}, + { 11, 0x0B00000F}, + { 12, 0x0C00000F}, + { 13, 0x0D00000F}, + { 14, 0x0E00000F}, + { 15, 0x0F00000F}, + { 16, 0x1000000F}, + { 17, 0x1100000F}, + { 18, 0x1200000F}, + { 19, 0x1300000F}, + { 20, 0x1400000F}, + { 21, 0x1500000F}, + { 22, 0x1600000F}, + { 23, 0x1700000F}, + { 24, 0x1800000F}, + { 25, 0x1900000F}, + { 26, 0x1A00000F}, + { 27, 0x1B00000F}, + { 28, 0x1C00000F}, + { 29, 0x1D00000F}, + { 30, 0x1E00000F}, + { 31, 0x1F00000F}, + { 32, 0x2000000F}, + { 33, 0x2100000F}, + { 34, 0x2200000F}, + { 35, 0x2300000F}, + { 36, 0x2400000F}, + { 37, 0x2500000F}, + { 38, 0x2600000F}, + { 39, 0x2700000F}, + { 40, 0x2800000F}, + { 41, 0x2900000F}, + { 42, 0x2A00000F}, + { 43, 0x2B00000F}, + { 44, 0x2C00000F}, + { 45, 0x2D00000F}, + { 46, 0x2E00000F}, + { 47, 0x2F00000F}, + { 48, 0x3000000F}, + { 49, 0x3100000F}, + { 50, 0x3200000F}, + { 51, 0x3300000F}, + { 52, 0x3400000F}, + { 53, 0x3500000F}, + { 54, 0x3600000F}, + { 55, 0x3700000F}, + { 56, 0x3800000F}, + { 57, 0x3900000F}, + { 58, 0x3A00000F}, + { 59, 0x3B00000F}, + { 60, 0x3C00000F}, + { 61, 0x3D00000F}, + { 62, 0x3E00000F}, + { 63, 0x3F00000F}, + { 64, 0x4000000F}, + { 65, 0x4100000F}, + { 66, 0x4200000F}, + { 67, 0x4300000F}, + { 68, 0x4400000F}, + { 69, 0x4500000F}, + { 70, 0x4600000F}, + { 71, 0x4700000F}, + { 72, 0x4800000F}, + { 73, 0x4900000F}, + { 74, 0x4A00000F}, + { 75, 0x4B00000F}, + { 76, 0x4C00000F}, + { 77, 0x4D00000F}, + { 78, 0x4E00000F}, + { 79, 0x4F00000F}, + { 0xFF, 0xFFFFFFFF}, // end of table + }; + +static const EffectMapEntry_t* effect_maps[] = { + effect_map_nr, + effect_map_pre, + effect_map_dst, + effect_map_amp, + effect_map_cab, + effect_map_eq, + effect_map_mod, + effect_map_dly, + effect_map_rvb, + effect_map_ns + }; + /* ** Static function prototypes */ @@ -581,6 +822,42 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) return 1; } +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +static uint8_t usb_valeton_gp5_get_effect_block_index(uint32_t in, uint8_t block) +{ + if (block < VALETON_EFFECT_BLOCK_LAST) + { + const EffectMapEntry_t* map = effect_maps[block]; + + //ESP_LOGI(TAG, "Effect map:%d %X ", (int)map->effect_index, (int)map->byte_sequence); + + // search for the in marker + while (map->effect_index != 0xFF) + { + // debug + //ESP_LOGI(TAG, "Effect map %X ", (int)map->byte_sequence); + + if (map->byte_sequence == in) + { + // found match + return map->effect_index; + } + + map++; + } + } + + // unknown + ESP_LOGW(TAG, "Effect map in %X not found", (int)in); + return 0; +} + /**************************************************************************** * NAME: * DESCRIPTION: @@ -984,11 +1261,17 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 uint32_t param_index = 0; float temp_val; tModellerParameter* param_ptr; + uint8_t effect_states_1; + uint8_t effect_states_2; + uint8_t loop; - // bytes 140,141,142,143 has effect block states - uint8_t effect_states_1 = (buffer[140] << 4) | (buffer[141] & 0x0F); - uint8_t effect_states_2 = (buffer[142] << 4) | (buffer[143] & 0x0F); - //ESP_LOGI(TAG, "Effect states: %d %d", (int)effect_states_1, (int)effect_states_2); + // skip to effect block bit flags + read_index += 136; + + effect_states_1 = (buffer[read_index] << 4) | (buffer[read_index + 1] & 0x0F); + read_index += 2; + effect_states_2 = (buffer[read_index] << 4) | (buffer[read_index + 1] & 0x0F); + read_index += 2; if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) { @@ -1007,13 +1290,41 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 valeton_params_release_locked_access(); } + // skip to effect block models + read_index += 40; + + // debug + //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], 80, ESP_LOG_INFO); + + // first 6 bytes are the value, then shift it right by 4 bits + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + for (loop = VALETON_EFFECT_BLOCK_NR; loop < VALETON_EFFECT_BLOCK_NS; loop++) + { + // get 4 byte effect code from 8 nibbles + uint32_t effect_code = (((buffer[read_index] << 4) | (buffer[read_index + 1] & 0x0F)) << 24); + effect_code |= (((buffer[read_index + 2] << 4) | (buffer[read_index + 3] & 0x0F)) << 16); + effect_code |= (((buffer[read_index + 4] << 4) | (buffer[read_index + 5] & 0x0F)) << 8); + effect_code |= (((buffer[read_index + 6] << 4) | (buffer[read_index + 7] & 0x0F))); + + //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], 8, ESP_LOG_INFO); + //ESP_LOGI(TAG, "Effect code %X for effect %d", (int)effect_code, (int)loop); + + param_ptr[VALETON_PARAM_NR_TYPE + loop].Value = (float)usb_valeton_gp5_get_effect_block_index(effect_code, loop); + read_index += 8; + } + + valeton_params_release_locked_access(); + } + + // debug + //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index - 49], 128, ESP_LOG_INFO); - // get effect block settings - //todo VALETON_PARAM_PRE_TYPE + // skip to start of params, back to back 32 bit big-endian floats + read_index += 16; + //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], 64, ESP_LOG_INFO); - // first 332 bytes of data unknown. From there, back to back 32 bit big-endian floats - read_index += 268; //324; //332; - //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], 8, ESP_LOG_INFO); + ESP_LOGI(TAG, "Param values read_index: %d", (int)read_index); // params following match the order defined in Valeton params from VALETON_PARAM_NR_PARAM_0 down if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) @@ -1021,7 +1332,7 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 while (read_index < len) { // join 8 nibbles to form a 4 byte value - for (uint8_t loop = 0; loop < 4; loop++) + for (loop = 0; loop < 4; loop++) { temp_buf[loop] = buffer[read_index++] << 4; temp_buf[loop] |= buffer[read_index++] & 0x0F; @@ -1037,7 +1348,6 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 } else { - // maybe these are globals? ESP_LOGW(TAG, "Invalid Param count %d %f!", (int)(VALETON_PARAM_NR_PARAM_0 + param_index), temp_val); } diff --git a/source/main/valeton_params.c b/source/main/valeton_params.c index 0340427d..2eb3156d 100644 --- a/source/main/valeton_params.c +++ b/source/main/valeton_params.c @@ -57,7 +57,8 @@ static tModellerParameter ValetonParameters[VALETON_GLOBAL_LAST] = {0, 0, 1, "DLY EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_DLY, VALETON_BLOCK_ENABLE, 0}, // VALETON_PARAM_DLY_ENABLE, {0, 0, 1, "RVB EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_RVB, VALETON_BLOCK_ENABLE, 0}, // VALETON_PARAM_RVB_ENABLE, {0, 0, 1, "NS EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_NS, VALETON_BLOCK_ENABLE, 0}, //VALETON_PARAM_NS_ENABLE - + + {0, 0, 1, "NR TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_NR, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_NR_TYPE, {0, VALETON_EFFECT_PRE_COMP, VALETON_EFFECT_PRE_DETUNE, "PRE TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_PRE, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_PRE_TYPE, {0, VALETON_EFFECT_DIST_GREEN_OD,VALETON_EFFECT_DIST_BASS_OD,"DST TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_DST, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_DIST_TYPE {0, VALETON_EFFECT_AMP_TWEEDY, VALETON_EFFECT_AMP_AC_PRE2, "AMP TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_AMP, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_AMP_TYPE diff --git a/source/main/valeton_params.h b/source/main/valeton_params.h index d7d8ba07..a9729af2 100644 --- a/source/main/valeton_params.h +++ b/source/main/valeton_params.h @@ -34,7 +34,8 @@ enum ValetonEffectBlocks VALETON_EFFECT_BLOCK_MOD, VALETON_EFFECT_BLOCK_DLY, VALETON_EFFECT_BLOCK_RVB, - VALETON_EFFECT_BLOCK_NS + VALETON_EFFECT_BLOCK_NS, + VALETON_EFFECT_BLOCK_LAST }; enum ValetonValetonEffectNR @@ -88,7 +89,7 @@ enum ValetonEffectMod VALETON_EFFECT_MOD_O_PHASE, VALETON_EFFECT_MOD_M_VIBE, VALETON_EFFECT_MOD_V_ROTO, - VALETON_EFFECT_MOD_VIBRATOR, + VALETON_EFFECT_MOD_VIBRATO, VALETON_EFFECT_MOD_O_TREM, VALETON_EFFECT_MOD_SINE_TREM, VALETON_EFFECT_MOD_BIAS_TREM @@ -201,6 +202,7 @@ enum ValetonParameters VALETON_PARAM_NS_ENABLE, // models + VALETON_PARAM_NR_TYPE, VALETON_PARAM_PRE_TYPE, VALETON_PARAM_DIST_TYPE, VALETON_PARAM_AMP_TYPE, diff --git a/source/sdkconfig.defaults b/source/sdkconfig.defaults index 6717dfc8..095a6b3a 100644 --- a/source/sdkconfig.defaults +++ b/source/sdkconfig.defaults @@ -43,6 +43,7 @@ CONFIG_USB_HOST_CONTROL_TRANSFER_MAX_SIZE=2048 # CONFIG_WPA_MBEDTLS_TLS_CLIENT is not set CONFIG_LV_MEM_CUSTOM=y CONFIG_LV_MEMCPY_MEMSET_STD=y +CONFIG_LV_MEM_CUSTOM_INCLUDE="esp_heap_caps.h" CONFIG_LV_USE_ASSERT_STYLE=y CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM=y CONFIG_LV_FONT_MONTSERRAT_20=y diff --git a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project index 255b7e5a..113fa83b 100644 --- a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project +++ b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project @@ -11860,6 +11860,12880 @@ "isUsedAsUserWidget": false, "createAtStart": true, "deleteOnScreenUnload": false + }, + { + "objID": "86cf3f68-ecc5-4a4d-a81c-9be2fd31ae5b", + "components": [ + { + "objID": "e09f74cd-73bd-4bef-ec8e-c1f5ef4f6620", + "type": "LVGLScreenWidget", + "left": 0, + "top": 0, + "width": 800, + "height": 480, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "6b14c146-240c-410a-f3f6-fed451e0d231", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "a8a8cbe4-cf46-4e6c-abc4-172e032d5ec7", + "type": "LVGLTabviewWidget", + "left": 5, + "top": 5, + "width": 790, + "height": 428, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "62742b52-9b1e-4ae2-baa8-1ab78f9196f6", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValSettingsTabView", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "1f64095b-05d6-4c71-e95d-cc808405ab0d", + "type": "LVGLContainerWidget", + "left": 0, + "top": 0, + "width": 790, + "height": 60, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "a8ea6050-6b8a-4055-8958-cb96c173e269", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "0bb1a694-59ee-4d6f-eb81-9db63f6aed4f", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#2A2A2A" + } + }, + "ITEMS": { + "DEFAULT": { + "text_color": "#ffffff", + "border_color": "#373737", + "border_width": 2, + "border_side": "LEFT" + }, + "CHECKED": { + "border_color": "#96969e", + "bg_color": "#2196f3" + } + } + } + }, + "group": "", + "groupIndex": 0 + }, + { + "objID": "43ab101c-d8a3-40e2-bbc7-7fcab0bdaaff", + "type": "LVGLTabWidget", + "left": 10, + "top": 9, + "width": 790, + "height": 368, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "fe1dd4cd-b8db-48e8-8e7e-72fb606345a8", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNRTab", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "d4b1a137-76c7-4bed-c757-20838914112e", + "type": "LVGLLabelWidget", + "left": 13, + "top": -148, + "width": 84, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "e4a58bd6-b289-4b98-fc2b-1cabec019b32", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNRBlockLabel", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "0a64a48d-ca80-4983-d993-748026e43a95", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "text_align": "AUTO", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Enable", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "c49ad620-e30e-4fc9-a5b0-37f35507f792", + "type": "LVGLSwitchWidget", + "left": 168, + "top": -148, + "width": 80, + "height": 35, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "ca7c89e8-c922-4a07-c8c6-ba288d37d87b", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "4097194c-4b40-4339-cdf3-47230f0ffaa3", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValNRBlockSwitch", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CHECKABLE|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "7b3693aa-6cd9-4ca9-c77a-95297695c8b4", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + }, + "INDICATOR": { + "CHECKED": { + "bg_color": "#3890d5" + } + } + } + }, + "group": "", + "groupIndex": 0 + }, + { + "objID": "3805fda1-f77f-40eb-c899-81f2a5762784", + "type": "LVGLDropdownWidget", + "left": 482, + "top": 8, + "width": 280, + "height": 53, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "bcaac14a-24c5-4003-ba92-00152589e734", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "813121a2-bc96-413a-9186-cfdf543d5089", + "eventName": "VALUE_CHANGED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValNRModelDropdown", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "content", + "children": [ + { + "objID": "3fc89ea4-d7ee-4e8c-ec5d-c09dffeef041", + "type": "LVGLContainerWidget", + "left": 0, + "top": 0, + "width": 130, + "height": 130, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "e0e55b7a-37b2-477c-cd12-b23854277d40", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "0005fd18-d3e2-4125-b2a1-17a2bc38fba4", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_24" + } + }, + "SELECTED": { + "DEFAULT": { + "bg_color": "#3890d5" + }, + "CHECKED": { + "bg_color": "#3890d5", + "text_font": "MONTSERRAT_24" + } + } + } + }, + "group": "", + "groupIndex": 0 + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "c64d76cf-171d-4c45-d5e0-68a83299c238", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_24" + } + }, + "SELECTED": { + "CHECKED": { + "bg_color": "#ffffff" + }, + "DEFAULT": { + "bg_color": "#ffffff" + }, + "CHECKED|PRESSED": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "options": "Noise Gate", + "optionsType": "literal", + "selected": 0, + "selectedType": "literal", + "direction": "bottom" + }, + { + "objID": "1715fc35-ab17-4f0a-f115-7b21b297afbb", + "type": "LVGLLabelWidget", + "left": 13, + "top": -92, + "width": 96, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "5cc2c54c-e9d6-416a-ec89-e5571f9f5895", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNRParam0Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "891c5355-d10b-46e1-e563-0198c8e475fb", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "8d820855-826a-4876-efcd-cd5078600f91", + "type": "LVGLSliderWidget", + "left": 168, + "top": -92, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "e0b8c16b-3b4b-406a-a5c3-86a0d7d8bd84", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "86ff09e7-97b5-4def-c088-cd1f5bc46505", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValNRParam0Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "0c76d7cc-c998-4556-cc32-7179494853b1", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "8a995762-1527-47a6-a5a1-ca09b6bfe68d", + "type": "LVGLLabelWidget", + "left": 703, + "top": -92, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "7749d8e3-2138-4e36-9955-e0e8657d4694", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNRParam0Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "d0875d78-f76c-40df-ed8e-565d5e07dcef", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "7cced750-9cb2-4a28-d2f1-dfbf35a1cb5e", + "type": "LVGLLabelWidget", + "left": 13, + "top": -36, + "width": 89, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "3b0b4add-7e60-493e-a30b-d82a61c75a88", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNRParam1Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "00449935-5d38-45c2-e65c-14d0b97c65b0", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param1", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "02505598-255b-4609-8193-c1191deb2fe5", + "type": "LVGLSliderWidget", + "left": 168, + "top": -36, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "f2b156fe-4ebc-42cc-b06a-a690e2dd097c", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "a938abdf-06fe-4954-dfc5-2962860b63bc", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValNRParam1Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "12ba3e90-3a6f-4374-daba-d585e8b08560", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "648eb10d-ec88-4a88-c133-51920ae49068", + "type": "LVGLLabelWidget", + "left": 703, + "top": -36, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "1b67895c-86fa-44fa-83d1-865ca5e0b554", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNRParam1Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "0b82381a-1acf-48e6-bc70-42ad669d3622", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "99fc5ebb-0097-4916-de11-9346f56bb3de", + "type": "LVGLLabelWidget", + "left": 13, + "top": 21, + "width": 94, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "3fcbce57-37e9-46da-b810-d13feffd018c", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNRParam2Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "89d38d32-5ae9-4909-ae95-fea2f1adccc5", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param2", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "6d43f9b8-0cc9-45e5-9e61-219cc60c793a", + "type": "LVGLSliderWidget", + "left": 168, + "top": 21, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "6930b7db-7ab5-4192-ac63-0c4750a6595f", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "04c25a62-de94-48f3-964a-ee6ee65238dc", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValNRParam2Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "f770c3f7-3181-415f-c474-772447f57a81", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "ffaecd14-2ec5-40d7-dde2-2e12e4a55edc", + "type": "LVGLLabelWidget", + "left": 703, + "top": 21, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "a2f71865-d2be-4255-9abd-9d2ec0741d14", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNRParam2Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "8b46d91e-b096-42e8-d8de-2204dd06fc65", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "e811e553-0d5d-4ebb-b1ef-934e1a2c3329", + "type": "LVGLLabelWidget", + "left": 13, + "top": 77, + "width": 94, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "0be5bc51-fce5-4b06-d498-f62a89034a16", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNRParam3Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "e8251217-eddc-4f9d-c47a-c4e909220eaa", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param3", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "c81c5c15-9037-4073-80c5-563e897b8dd8", + "type": "LVGLSliderWidget", + "left": 168, + "top": 78, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "0dd4d6bf-e772-43e9-a603-1fdad5523a0e", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "9fffe7d4-34f5-4ff9-bb13-36d2d06f34b3", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValNRParam3Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "da0c125b-5c84-45c2-b79c-36ac0df05d0a", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "fbd06521-cf38-4518-b2c7-211e53d92d9f", + "type": "LVGLLabelWidget", + "left": 703, + "top": 77, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "27e504ba-968f-4f87-c98d-6347289aa3fd", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNRParam3Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "65623459-0a46-470a-89d4-1fdb7ba024d0", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "53f11763-1c5f-4671-a5a4-2dcd427e80b9", + "type": "LVGLLabelWidget", + "left": 13, + "top": 133, + "width": 96, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "01e0aeae-adb3-4e0b-feaa-8baf78b1f7f1", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNRParam4Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "c4ad742e-a56d-41a7-ef8b-50347a6c20a2", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param4", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "ed03631c-0909-4a5c-eb10-1af2a2750d80", + "type": "LVGLSliderWidget", + "left": 168, + "top": 133, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "3febf088-efa2-4b02-8ed3-ce8ef8a8b168", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "77855b13-9f22-4560-f2f0-0fbd15b7d78e", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValNRParam4Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "f1fa9270-7a2c-4834-f3f4-84f1d3302975", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "29ecc386-e6f7-40b2-bee6-a0b37ae59302", + "type": "LVGLLabelWidget", + "left": 703, + "top": 133, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "142cc470-1cd0-470a-83ed-0f09ad4e4e81", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNRParam4Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "6ffdee64-cb92-4ee7-da71-2e8eb7bae68f", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "off", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedState": false, + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "f4c11056-4e3a-4e96-9a24-615fdcfd5c34", + "definition": { + "MAIN": { + "CHECKED": { + "text_color": "FB9230", + "text_font": "MONTSERRAT_20", + "border_color": "#373737" + }, + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "text_color": "#fafafa", + "pad_top": 0, + "pad_bottom": 0, + "pad_left": 0, + "pad_right": 0, + "pad_row": 0, + "pad_column": 0, + "border_color": "373737", + "border_width": 2, + "border_side": "LEFT", + "bg_color": "#ffffff" + }, + "PRESSED": { + "bg_color": "513D2B" + }, + "CHECKED|PRESSED": { + "bg_color": "#513d2b" + } + } + } + }, + "group": "", + "groupIndex": 0, + "tabName": "NR", + "tabNameType": "literal" + }, + { + "objID": "e3bc3235-4ad4-499f-cfe1-bf71a19afde4", + "type": "LVGLTabWidget", + "left": 10, + "top": 9, + "width": 790, + "height": 368, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "d95a1749-c0d3-4c59-85c6-a74c6d580006", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValPreTab", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "a5b00561-2d45-456c-b695-99fb6e8e0796", + "type": "LVGLLabelWidget", + "left": 13, + "top": -148, + "width": 84, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "63f272e0-dff7-437d-8e55-98807c3d9b97", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNPreBlockLabel", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "f3d696f9-9081-4201-9b47-a2ff2f6a62c1", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "text_align": "AUTO", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Enable", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "bde4bbf2-70ec-496c-ecce-5d4603a01e8e", + "type": "LVGLSwitchWidget", + "left": 168, + "top": -148, + "width": 80, + "height": 35, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "34a3d704-90b5-456f-8c95-42aba3b95308", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "7985e220-b4fa-4375-eec7-d4f38246ff52", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValPreBlockSwitch", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CHECKABLE|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "a01b2214-8a6e-44f3-dc62-d6c1cd665e1b", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + }, + "INDICATOR": { + "CHECKED": { + "bg_color": "#3890d5" + } + } + } + }, + "group": "", + "groupIndex": 0 + }, + { + "objID": "1db9f7f8-0bd7-48f4-d3ab-79d962f07e46", + "type": "LVGLDropdownWidget", + "left": 482, + "top": 8, + "width": 280, + "height": 53, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "72045d30-eb91-4bb4-caba-e37b14ccb5f9", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [ + { + "objID": "8446f658-d46a-445a-e50d-91c823cd7bf8", + "eventName": "VALUE_CHANGED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValPreModelDropdown", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "content", + "children": [ + { + "objID": "6003c389-8104-495e-f6d4-6caf4f33b8af", + "type": "LVGLContainerWidget", + "left": 0, + "top": 0, + "width": 130, + "height": 130, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "c484c3a0-8d7e-48ce-ee78-d3187e91338c", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "a2ab4a34-41e5-4c75-a585-cdcd3f292fb6", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_24" + } + }, + "SELECTED": { + "DEFAULT": { + "bg_color": "#3890d5" + }, + "CHECKED": { + "bg_color": "#3890d5", + "text_font": "MONTSERRAT_24" + } + } + } + }, + "group": "", + "groupIndex": 0 + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "cfee2dab-b8e4-450d-800f-21e9ca6e8b74", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_24" + } + }, + "SELECTED": { + "CHECKED": { + "bg_color": "#ffffff" + }, + "DEFAULT": { + "bg_color": "#ffffff" + }, + "CHECKED|PRESSED": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "options": "Comp\nComp4\nBoost\nMicro Boost\nB-Boost\nToucher\nCrier\nOcta\nPitch\nDetune", + "optionsType": "literal", + "selected": 0, + "selectedType": "literal", + "direction": "bottom" + }, + { + "objID": "58f64971-53af-42a7-d5e9-25aa5197c463", + "type": "LVGLLabelWidget", + "left": 13, + "top": -92, + "width": 96, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "2ef075b3-8c26-474f-d30f-47aaef8d3551", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValPreParam0Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "0cbb8676-900f-425d-8194-10e63547b39c", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "336efec9-22a0-4d0b-8fa0-1ab302a214e8", + "type": "LVGLSliderWidget", + "left": 168, + "top": -92, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "a823f843-5a90-4fc0-e63d-0528bb5db8fe", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "095f079d-ac65-47af-d0f6-5d10751382f4", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValPreParam0Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "b4042fd9-f583-49a1-e6ec-703ea35e6e5f", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "5c63901d-6a19-409a-8625-089b26552be5", + "type": "LVGLLabelWidget", + "left": 703, + "top": -92, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "5a11976f-5fc3-4c12-ec7f-93e1f31da7a5", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValPreParam0Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "b8176145-1d8e-4239-a45c-c7378ce63fc1", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "8b142fff-d035-418e-b7f6-95e8118d83f9", + "type": "LVGLLabelWidget", + "left": 13, + "top": -36, + "width": 89, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "c3c58332-6d01-4a27-e982-fdbeed20e61b", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValPreParam1Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "8ccd270e-ae55-40a2-da9c-ab3b95109f8d", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param1", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "66b46dad-6d69-4f7a-f795-89d64e316e7a", + "type": "LVGLSliderWidget", + "left": 168, + "top": -36, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "625e40bf-7bdc-48f6-95fe-508b69c99912", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "b1198f8b-cc0d-4bb3-9d75-749a49306d06", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValPreParam1Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "7f274d58-5655-44e2-fcf7-827236fb81b6", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "9f2fcb49-b092-48dd-e4ff-728db972f26b", + "type": "LVGLLabelWidget", + "left": 703, + "top": -36, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "d56016ad-f94e-4a78-b1f5-3e0a4eb9b328", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValPreParam1Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "a793a944-6844-4078-9c9f-729fac6d7882", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "bb290d22-8d70-4906-9669-7cea0dcf94a5", + "type": "LVGLLabelWidget", + "left": 13, + "top": 21, + "width": 94, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "d4bd2f5b-c006-495f-d5a9-29d20f045e0d", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValPreParam2Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "47b536ca-b6aa-4b77-f7f7-b1761c0f1832", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param2", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "84b816de-a748-4480-e1e2-61aff42983dc", + "type": "LVGLSliderWidget", + "left": 168, + "top": 21, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "59da948c-5dac-478d-85b3-99253a8ebdac", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "f219549a-d90f-4a06-83da-ab2fe561571b", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValPreParam2Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "7842bbc7-cf89-45d5-d441-4494cd7dbc6f", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "9fff8aa0-e0b5-4cbd-cf72-f3a166808d91", + "type": "LVGLLabelWidget", + "left": 703, + "top": 21, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "6a42eacb-5b66-4dbe-9964-ecb60978cc28", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValPreParam2Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "1b5cb45d-321e-49f1-d3c9-5cf89b84766f", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "27849218-e701-4274-f8b4-2221b8e70727", + "type": "LVGLLabelWidget", + "left": 13, + "top": 77, + "width": 94, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "7829b0e2-9fb3-4263-9f93-acda38c33950", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValPreParam3Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "3feb4594-a6ba-47f2-d88a-22f06ef19b4f", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param3", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "c377eddb-07c1-4a98-f853-ae9e1eb95237", + "type": "LVGLSliderWidget", + "left": 168, + "top": 78, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "845cdb5b-db77-4553-ff0c-e4df821db6b5", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "996b18ca-0d0b-4a36-d57c-90561a567482", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValPreParam3Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "256e4fb7-5f6e-4e9d-e77d-3a1c8694aeeb", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "ae76d867-baff-4994-94a3-dfc80f62a139", + "type": "LVGLLabelWidget", + "left": 703, + "top": 77, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "d93a4c15-864b-4ff0-e58c-95b73ca55ac7", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValPreParam3Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "5b0ab035-3f5b-4359-fe37-871959984435", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "6ba02482-ae4a-42b5-f9ff-92ae0e4b7aef", + "type": "LVGLLabelWidget", + "left": 13, + "top": 133, + "width": 96, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "f2feaa9b-ae33-4061-800f-898b00a12225", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValPreParam4Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "9ea24cb1-d54e-49c4-efad-0dd2b0dd00a3", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param4", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "33086155-435d-4d77-dc60-6d74d3981d17", + "type": "LVGLSliderWidget", + "left": 168, + "top": 133, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "8646fcd3-3700-4601-e230-744fc3af2688", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "7674b886-cfc1-4b5d-cae1-fb04102ab6a3", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValPreParam4Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "cf307173-a7b2-4272-a82d-600120569c5d", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "ef1cfa82-c048-4599-de58-f3ecf45d2723", + "type": "LVGLLabelWidget", + "left": 703, + "top": 133, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "e8d000df-4a76-4246-9ce8-47be29e51504", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValPreParam4Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "9817944a-433f-44f4-fdd7-164501bc8550", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "off", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "23ad26ed-e016-4bf1-91dd-cc282f793096", + "definition": { + "MAIN": { + "CHECKED": { + "text_color": "FB9230", + "bg_color": "513D2B", + "text_font": "MONTSERRAT_20" + }, + "DEFAULT": { + "text_font": "MONTSERRAT_20", + "pad_top": 0, + "pad_bottom": 0, + "pad_left": 0, + "pad_right": 0, + "pad_row": 0, + "pad_column": 0, + "border_width": 2, + "border_color": "373737" + } + } + } + }, + "group": "", + "groupIndex": 0, + "tabName": "Pre", + "tabNameType": "literal" + }, + { + "objID": "1f61b467-5600-4c17-8117-429260355c7f", + "type": "LVGLTabWidget", + "left": 10, + "top": 9, + "width": 790, + "height": 368, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "e94dc62d-a7c3-40f4-d4aa-911772ef44ad", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDstTab", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "11153aaf-485d-4887-dfed-57d40bb08c0d", + "type": "LVGLLabelWidget", + "left": 13, + "top": -148, + "width": 84, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "dcf64f10-8c68-4941-a5e7-dcb31d727e99", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDstBlockLabel", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "ec474030-d14e-43dd-8ae6-528720d8b0b4", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "text_align": "AUTO", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Enable", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "b675cffa-9eab-4b78-b10c-a66833654d4d", + "type": "LVGLSwitchWidget", + "left": 168, + "top": -148, + "width": 80, + "height": 35, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "6dd1e223-9232-4511-f795-cdf71fdddbb5", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "bba9f4d7-b82f-4310-830d-f4d7cf39aef0", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValDstBlockSwitch", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CHECKABLE|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "fab0895e-2db6-426f-fc21-12f24a0eb092", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + }, + "INDICATOR": { + "CHECKED": { + "bg_color": "#3890d5" + } + } + } + }, + "group": "", + "groupIndex": 0 + }, + { + "objID": "43b43bad-5824-456c-f22b-edadd94ff0ad", + "type": "LVGLDropdownWidget", + "left": 482, + "top": 8, + "width": 280, + "height": 53, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "f2a57d20-90a4-4f6d-c2a5-8b714d14fd71", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [ + { + "objID": "14fe240b-dfb8-47be-c924-bb70e2596fb5", + "eventName": "VALUE_CHANGED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValDstModelDropdown", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "content", + "children": [ + { + "objID": "9e79d98e-f64a-4e23-dae0-170fd710b6e9", + "type": "LVGLContainerWidget", + "left": 0, + "top": 0, + "width": 130, + "height": 130, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "4aa2bc66-acc1-4d25-fe2e-b431be38f6bc", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "baf32b99-7d7e-472d-f030-8be35a5a3d5d", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_24" + } + }, + "SELECTED": { + "DEFAULT": { + "bg_color": "#3890d5" + }, + "CHECKED": { + "bg_color": "#3890d5", + "text_font": "MONTSERRAT_24" + } + } + } + }, + "group": "", + "groupIndex": 0 + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "b44c0e71-a5b1-4822-b4a2-ef96762a915f", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_24" + } + }, + "SELECTED": { + "CHECKED": { + "bg_color": "#ffffff" + }, + "DEFAULT": { + "bg_color": "#ffffff" + }, + "CHECKED|PRESSED": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "options": "Comp\nComp4\nBoost\nMicro Boost\nB-Boost\nToucher\nCrier\nOcta\nPitch\nDetune", + "optionsType": "literal", + "selected": 0, + "selectedType": "literal", + "direction": "bottom" + }, + { + "objID": "1f99e835-a108-499a-ecab-20ea993e2ef1", + "type": "LVGLLabelWidget", + "left": 13, + "top": -92, + "width": 96, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "4f9b8e64-aad0-4c34-cd2d-b941a66a0cf0", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDstParam0Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "ac7e6c59-3417-4b67-ca15-aa4317d6ea00", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "28378615-a53b-4864-ffe1-3fc08f19ed01", + "type": "LVGLSliderWidget", + "left": 168, + "top": -92, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "305afcd0-89e1-48ec-8226-c8d1844c41d2", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "0b07f131-e8dd-4f90-cb65-8e9b7bcf1d6e", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValDstParam0Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "826b6bce-3d44-4649-d30d-ef1ee8f9a7d7", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "6e80a0aa-eb21-4c64-f689-9c44d9589850", + "type": "LVGLLabelWidget", + "left": 703, + "top": -92, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "292d2d3f-ee2c-4e92-fc23-4dd446070cac", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDstParam0Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "054de3a0-414d-4be8-a426-4e452126ea1d", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "5c1a1ca0-fc36-4264-d57a-acf7179fca73", + "type": "LVGLLabelWidget", + "left": 13, + "top": -36, + "width": 89, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "a592374b-9f62-40cf-8517-fee5aba9c354", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDstParam1Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "8dc91fe4-5450-45f8-f636-2ce1a7d8f71c", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param1", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "85dc1264-2f66-4030-fb71-ef642277fa39", + "type": "LVGLSliderWidget", + "left": 168, + "top": -36, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "79ddec8d-4cd6-4135-83f6-7ecc9513e08a", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "c66d5c87-9d3c-4811-9329-fcc888885427", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValDstParam1Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "608b3e6e-7302-4fda-e115-b126bc4ddfc3", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "0be4b183-ccc1-469e-d7c2-fbb7b926b9c1", + "type": "LVGLLabelWidget", + "left": 703, + "top": -36, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "9117b101-bc6f-41a7-fc63-ef274fe310e4", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDstParam1Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "1c9c225e-7182-41bb-a97c-f6cc709175da", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "bc3f7005-56a4-4562-e36f-083ea5be4e69", + "type": "LVGLLabelWidget", + "left": 13, + "top": 21, + "width": 94, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "c0605666-7046-48fb-e65a-cc666fc69cc2", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDstParam2Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "75a607da-edbe-463b-cdb2-3624f9349132", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param2", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "4d999e50-9e23-4adb-9897-f300119cebd2", + "type": "LVGLSliderWidget", + "left": 168, + "top": 21, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "283dc2c4-31a5-48e9-91cb-f3ad4f775b10", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "24932760-50c0-4dd5-d938-061dc230dddf", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValDsteParam2Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "73e4e97a-2a76-4d8c-d91e-e53f475d42aa", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "1955a65b-c2ba-46b6-8ad4-e0eee521186b", + "type": "LVGLLabelWidget", + "left": 703, + "top": 21, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "972269c3-b179-4e07-8d99-9e6d84efaaf8", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDstParam2Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "56223022-348f-45a2-fd59-375285bbd805", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "79a14b8b-a706-4ef7-e8f1-f364bb7e54e5", + "type": "LVGLLabelWidget", + "left": 13, + "top": 77, + "width": 94, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "b726af9a-a0ee-42a6-9302-46879238436d", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDstParam3Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "cf6c3335-4e6c-4b1c-9877-3475a5ffb89b", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param3", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "0b11c973-7fe9-4b91-b264-aec5ae084778", + "type": "LVGLSliderWidget", + "left": 168, + "top": 78, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "7a51db5f-8d5e-4902-f196-a6f96975933e", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "1f2e5b8e-be2b-4c0a-d929-ff65c8b15e25", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValDstParam3Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "d9f6fc7b-7e3d-4e6b-dec3-4770c54acaca", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "d464cf72-a1b0-430d-8c71-04a6e4063b11", + "type": "LVGLLabelWidget", + "left": 703, + "top": 77, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "af12c4e5-79dc-4b59-8007-0ead30c820c4", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDstParam3Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "806ecd77-794e-4331-dca5-6bbcf1d977fd", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "049c965d-7691-443d-e865-ddebff6557fe", + "type": "LVGLLabelWidget", + "left": 13, + "top": 133, + "width": 96, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "d8759ff0-2607-48ad-baf7-90b83d00a346", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDstParam4Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "9ff02adb-aa2e-462e-b51d-ac19d29dc5ed", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param4", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "2b0c2c79-5649-46f2-8f98-80ba4acdf0e2", + "type": "LVGLSliderWidget", + "left": 168, + "top": 133, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "5acd8db2-5b29-44ee-cd25-e7f01b0b8acc", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "f507f01b-28a1-4947-cbe8-e1cd27a7ac1a", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValDstParam4Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "19b9eced-521a-48ab-d0ca-c24bce7075b4", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "f3ebea6e-1bc7-4837-a7b7-826988c126e7", + "type": "LVGLLabelWidget", + "left": 703, + "top": 133, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "cb7e092d-38ee-41b6-ec2e-6a24fb807fda", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDstParam4Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "9cf5c9a4-2c7a-48c5-d79a-a901d6097346", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "off", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "e71527c8-e620-4204-a6ba-c501eba4edf6", + "definition": { + "MAIN": { + "CHECKED": { + "text_color": "FB9230", + "bg_color": "513D2B", + "text_font": "MONTSERRAT_20" + }, + "DEFAULT": { + "text_font": "MONTSERRAT_20", + "pad_top": 0, + "pad_bottom": 0, + "pad_left": 0, + "pad_right": 0, + "pad_row": 0, + "pad_column": 0, + "border_width": 2, + "border_color": "373737" + } + } + } + }, + "group": "", + "groupIndex": 0, + "tabName": "Dst", + "tabNameType": "literal" + }, + { + "objID": "a739785e-8de7-4b0a-8575-496f1f5027f4", + "type": "LVGLTabWidget", + "left": 10, + "top": 9, + "width": 790, + "height": 368, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "614ef9e4-1be5-4627-cc64-9c786f193a06", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValAmpTab", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "6599bd38-0b7d-4b2e-fb5c-2008f1073748", + "type": "LVGLLabelWidget", + "left": 13, + "top": -148, + "width": 84, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "ff8e267c-1433-4296-802e-8d1693655e69", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValAmpBlockLabel", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "135e4633-5882-477c-8b31-55437cc25c3f", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "text_align": "AUTO", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Enable", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "442dfbf7-8505-4662-8556-71bb94deb4f3", + "type": "LVGLSwitchWidget", + "left": 168, + "top": -148, + "width": 80, + "height": 35, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "50d081c4-ec96-47a5-d0fd-4fb57fa48180", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "0ee611a7-5cd6-4671-aee1-79edd2b1fc21", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValAmpBlockSwitch", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CHECKABLE|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "8f29815e-ad86-46ba-aa71-a9ef6eaf404d", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + }, + "INDICATOR": { + "CHECKED": { + "bg_color": "#3890d5" + } + } + } + }, + "group": "", + "groupIndex": 0 + }, + { + "objID": "cd29d055-ada4-4a1e-8deb-dbb0c19ef83e", + "type": "LVGLDropdownWidget", + "left": 482, + "top": 8, + "width": 280, + "height": 53, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "a6b10b59-cb90-47b4-bac6-d3ca9a3f16d3", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [ + { + "objID": "5918e0aa-0688-4d16-8be5-265fac9c3b5a", + "eventName": "VALUE_CHANGED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValAmpModelDropdown", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "content", + "children": [ + { + "objID": "1ab7287c-d203-4b00-b4cd-59594f5c2f37", + "type": "LVGLContainerWidget", + "left": 0, + "top": 0, + "width": 130, + "height": 130, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "cf1505c1-4601-444b-d305-e7188765c119", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "76978ca5-a560-4d96-dc50-b1f5a347d708", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_24" + } + }, + "SELECTED": { + "DEFAULT": { + "bg_color": "#3890d5" + }, + "CHECKED": { + "bg_color": "#3890d5", + "text_font": "MONTSERRAT_24" + } + } + } + }, + "group": "", + "groupIndex": 0 + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "d7a29b1d-cd19-4270-8b73-d0b912074fbb", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_24" + } + }, + "SELECTED": { + "CHECKED": { + "bg_color": "#ffffff" + }, + "DEFAULT": { + "bg_color": "#ffffff" + }, + "CHECKED|PRESSED": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "options": "Tweedy\nBellman 59N\nDark Twin\nFoxy 30N\nJ-120 CL\nMatch CL\nL-Star CL\nUK 45\nUK 50JP\nUK 800\nBellman 59B\nFoxy 30TB\nSup Dual OD\nSolo100 OD\nZ38 OD\nBad KT OD\nJuiceW R100\nDizz VH\nDizz VH+\nEagle 120\nEV51\nSolo100 LD\nMess Dual V\nMess Dual M\nPower LD\nFlagman+\nBog Red V\nClassic Bass\nFoxy Bass\nMess Bass\nAC Pre 1\nAC Pre 2\n", + "optionsType": "literal", + "selected": 0, + "selectedType": "literal", + "direction": "bottom" + }, + { + "objID": "e4972348-a52a-4143-aaf1-9be48d96196a", + "type": "LVGLLabelWidget", + "left": 13, + "top": -92, + "width": 96, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "53d27a7f-9b30-4565-c7b1-7ce4b9f0643f", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValAmpParam0Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "0ee9f168-cb11-4f5b-83c1-47ae2cb16adf", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "163ecd08-92e0-4c52-8010-beddad7679e8", + "type": "LVGLSliderWidget", + "left": 168, + "top": -92, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "5584ee21-635f-48f2-96c4-3b0336d60e32", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "54a37ce0-8b71-4647-b9d2-e95593d4c9b6", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValAmpParam0Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "5079214b-7565-4868-c343-7a5c1da8e895", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "d59bc5e1-d1de-4855-ef15-a7d8d9b438eb", + "type": "LVGLLabelWidget", + "left": 703, + "top": -92, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "328581f0-b498-41ab-8c87-9261a5272f25", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValAmpParam0Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "40160333-264a-4a1a-a286-0520214aadbc", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "df5f1b8d-3358-4000-f7d1-656875d99194", + "type": "LVGLLabelWidget", + "left": 13, + "top": -36, + "width": 89, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "1af0449b-f965-4b0e-e0ab-d8aa669f5291", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValAmpParam1Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "85f8fb63-d058-46d7-d843-0c0cc26656de", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param1", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "7f232add-0293-4c7f-9fbe-946372d1ddc3", + "type": "LVGLSliderWidget", + "left": 168, + "top": -36, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "fb8400c5-1b52-4b33-e7f8-a4468fefe805", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "42e293be-4792-4945-9330-7d903eac926a", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValAmpParam1Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "e7891127-e2d5-403d-da96-cd5ba2b1b77a", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "b2b7ec83-9930-47cd-da1b-f73ef634c71f", + "type": "LVGLLabelWidget", + "left": 703, + "top": -36, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "5161e241-312e-4be8-f414-39d7344e67dc", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValAmpParam1Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "92e96374-11ae-44bc-fb3b-174894a0bc0a", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "509a69f9-2afe-4257-f6cf-3385d47eb25c", + "type": "LVGLLabelWidget", + "left": 13, + "top": 21, + "width": 94, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "a094a918-e1dd-4309-97c4-197e22e9c608", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValAmpParam2Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "b585d592-0bb1-4dc8-add9-74a0429e32de", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param2", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "82c7af80-8727-43e8-f941-2f380e9eb5b7", + "type": "LVGLSliderWidget", + "left": 168, + "top": 21, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "9d633c14-6044-4b5c-d8cd-5bc5f8bf58c2", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "bbdbc8ad-842d-49ae-bb5e-47f23cf55ebf", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValAmpParam2Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "0e4ff3d5-390d-4115-cd3d-40605211638e", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "3f2d00f3-47f2-46da-b454-5e96a0306659", + "type": "LVGLLabelWidget", + "left": 703, + "top": 21, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "6f80482a-d9da-491b-c1d2-74e8b088386f", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValAmpParam2Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "686b0b0c-4515-40f4-b9f8-24a9e820eb27", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "c2283361-04bf-4ad2-eb18-c4202105119e", + "type": "LVGLLabelWidget", + "left": 13, + "top": 77, + "width": 94, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "d798eb3d-dff8-4ff8-d7ea-43282cef0d79", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValAmpParam3Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "ce6d3777-f7a2-464b-95f3-4dc6e34a60c3", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param3", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "ca2973a0-807c-4450-f561-4a2f4797ba53", + "type": "LVGLSliderWidget", + "left": 168, + "top": 78, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "aa8a63c6-c14e-419a-ccd2-e4b0f398984e", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "61513737-9dce-4d1a-a92d-42f98efd6e61", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValAmpParam3Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "e9b01039-b51b-4a4f-c312-7cae874236e4", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "700819ab-dbed-4ae7-8615-47dbbe333666", + "type": "LVGLLabelWidget", + "left": 703, + "top": 77, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "50f21bf7-7a4d-462b-9d8e-3764ebf8b3ff", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValAmpParam3Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "6d68664e-dd32-4a04-c1b2-b06192435db0", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "dcb0557b-4173-46fc-e032-d168c0ab33d2", + "type": "LVGLLabelWidget", + "left": 13, + "top": 133, + "width": 96, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "a93ee5b1-ac3f-40e2-af72-5e3e50fe4624", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValAmpParam4Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "68bbcfa2-385f-4979-c1f1-16547a0553af", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param4", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "95d044ad-e33a-48fb-82fc-e3cf3778a11f", + "type": "LVGLSliderWidget", + "left": 168, + "top": 133, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "6073fe1d-50c1-4a45-b60d-159c52ff0038", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "30a5bf27-28a5-475d-977e-ba3e52c656b7", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValAmpParam4Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "d0e6193a-6a5f-4fe8-fc01-c5de3c5a46a4", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "fe083099-f472-4f25-f8ea-07cfe3d0803a", + "type": "LVGLLabelWidget", + "left": 703, + "top": 133, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "36915c91-4cbc-4431-8d9d-6af5d19f7951", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValAmpParam4Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "fa299b07-e76d-4f96-ecc4-baed30d2b12d", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "off", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "6d7e6d7a-10a4-4ea0-882c-7ed0aee3cc74", + "definition": { + "MAIN": { + "CHECKED": { + "text_color": "FB9230", + "bg_color": "513D2B", + "text_font": "MONTSERRAT_20" + }, + "DEFAULT": { + "text_font": "MONTSERRAT_20", + "pad_top": 0, + "pad_bottom": 0, + "pad_left": 0, + "pad_right": 0, + "pad_row": 0, + "pad_column": 0, + "border_width": 2, + "border_color": "373737" + } + } + } + }, + "group": "", + "groupIndex": 0, + "tabName": "Amp", + "tabNameType": "literal" + }, + { + "objID": "d54dc197-2b29-4369-b5af-8f9301b56c37", + "type": "LVGLTabWidget", + "left": 10, + "top": 9, + "width": 790, + "height": 368, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "e418644d-6ce1-442d-b46a-6d50f97e75f2", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValCabTab", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "770d2eb5-48ac-4af2-c244-ee86c7060215", + "type": "LVGLLabelWidget", + "left": 13, + "top": -148, + "width": 84, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "28f52e30-f678-4e7e-eb66-fc36337c2196", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValCabBlockLabel", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "f6dc2591-e0c7-4733-e10a-08b07c8ce7f1", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "text_align": "AUTO", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Enable", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "07d9440c-426f-479a-c874-c86d205e11ec", + "type": "LVGLSwitchWidget", + "left": 168, + "top": -148, + "width": 80, + "height": 35, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "791621f2-84fa-4a9d-88e8-580edeb7f0be", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "63290be0-674f-40fb-8763-a6c5ee1938e4", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValCabBlockSwitch", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CHECKABLE|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "76c5aa19-e06b-48c8-ca41-18dbb7d049b0", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + }, + "INDICATOR": { + "CHECKED": { + "bg_color": "#3890d5" + } + } + } + }, + "group": "", + "groupIndex": 0 + }, + { + "objID": "19fe8a48-3c3c-4679-aa80-dc0499997e23", + "type": "LVGLDropdownWidget", + "left": 482, + "top": 8, + "width": 280, + "height": 53, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "5771c385-c0d7-4fd4-de27-8d1c9fd5f446", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [ + { + "objID": "dc93fe15-97cf-46cf-d392-456ca6d509d1", + "eventName": "VALUE_CHANGED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValCabModelDropdown", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "content", + "children": [ + { + "objID": "e4900e02-eb6a-4d9c-ea49-5b451fa6476a", + "type": "LVGLContainerWidget", + "left": 0, + "top": 0, + "width": 130, + "height": 130, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "962b7a2b-1c3a-425b-ec74-a06474ce33ff", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "51a495b5-9584-49fc-fb9a-e5c653846a55", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_24" + } + }, + "SELECTED": { + "DEFAULT": { + "bg_color": "#3890d5" + }, + "CHECKED": { + "bg_color": "#3890d5", + "text_font": "MONTSERRAT_24" + } + } + } + }, + "group": "", + "groupIndex": 0 + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "d784033a-4e37-48c2-e783-75500a14cf47", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_24" + } + }, + "SELECTED": { + "CHECKED": { + "bg_color": "#ffffff" + }, + "DEFAULT": { + "bg_color": "#ffffff" + }, + "CHECKED|PRESSED": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "options": "Twd CP\nDark VIT\nFoxy 1x12\nL-Star 1x12\nDark CS 2x12\nDark Twin 2x12\nSup Star 2x12\nJ-120 2x12\nFoxy 2x12\nUK Grn 2x12\nUK Grn 4x12\nBog 4x12\nDizz 4x12\nEV 4x12\nSolo 4x12\nMess 4x12\nEagle 4x12\nJuice 4x12\nBellman 2x12\nAmpg 4x10", + "optionsType": "literal", + "selected": 0, + "selectedType": "literal", + "direction": "bottom" + }, + { + "objID": "fef9278d-a32a-4c7b-b4e8-80f81e298356", + "type": "LVGLLabelWidget", + "left": 13, + "top": -92, + "width": 96, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "47a73e18-66d4-4861-c220-e84d74a71d7b", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValCabParam0Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "60724b8f-ef8b-43f0-cc65-a023add41bf1", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "8d16e4ff-ae93-443e-c956-708f7aabd29f", + "type": "LVGLSliderWidget", + "left": 168, + "top": -92, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "d8a903c0-4932-464c-dc7d-909fb6bb9582", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "bf979fc3-e2d8-4056-c279-10e524e8f988", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValCabParam0Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "fe3f3b25-6cf5-4d39-e49a-c21e8f2a5e20", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "7a4ed7b9-74b5-48b9-cc2b-bfec1f2d3880", + "type": "LVGLLabelWidget", + "left": 703, + "top": -92, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "60612d5a-7a0b-4c3f-c668-2dd76e8bf5d5", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValCabParam0Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "d3aa36e0-27fc-463a-c726-0d781bc93284", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "85ae9dcb-3cae-4a34-b1ed-900b40a82f41", + "type": "LVGLLabelWidget", + "left": 13, + "top": -36, + "width": 89, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "af6df0e6-47fc-4593-c826-dfad36a6d467", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValCabParam1Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "8ad8c69a-bc21-4c47-9818-4486bca0dda6", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param1", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "ea5f3d79-9a2d-4e31-d10d-ff0ceb83b6de", + "type": "LVGLSliderWidget", + "left": 168, + "top": -36, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "e6c6ada7-fcd1-4738-a4ba-3d994cf8fb96", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "aeb27b24-b409-4074-f196-6a1014bb5b93", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValCabParam1Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "5ccfb096-8480-4d7b-b30d-5a52e8d167c8", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "5604f1b1-9bed-41fc-bf7d-b609543f792c", + "type": "LVGLLabelWidget", + "left": 703, + "top": -36, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "1b82bc62-7c3b-48f6-b17b-f7287bbf57d6", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValCabParam1Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "1d56a8a6-9f5c-4a9a-f308-e0d134a864bc", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "968f836e-57f3-467d-ff60-6be2d9b6bd07", + "type": "LVGLLabelWidget", + "left": 13, + "top": 21, + "width": 94, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "ab0e5858-9824-4749-a0e6-ea338489b9f2", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValCabParam2Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "a4153037-7ed9-433b-bcf5-a203815f20bc", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param2", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "967d3b92-502a-482a-ea68-09bfc6e6443a", + "type": "LVGLSliderWidget", + "left": 168, + "top": 21, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "21b14326-ae61-43b0-e693-f0d1a660b4b0", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "15963c48-8b11-4b4d-c798-d2bd8e60dfa7", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValCabParam2Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "38903dcd-6100-4908-b027-e3e221d96764", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "6ae33793-e7a8-4b7f-c001-ee62bfedae89", + "type": "LVGLLabelWidget", + "left": 703, + "top": 21, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "a2bc6b24-f192-45d4-88dd-eafc70f6ab98", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValCabParam2Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "c3230f6b-7018-4887-8433-b40f6d533843", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "4ae2750d-ea0b-424b-b5b2-3c3c280240a7", + "type": "LVGLLabelWidget", + "left": 13, + "top": 77, + "width": 94, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "5ca8b755-3a5a-41e3-a978-5f1aa06168b4", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValCabParam3Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "1e640999-0c51-490e-8426-b8d705a9eb14", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param3", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "0a46e4e5-8568-42d8-a5a6-5e03bf9a29ae", + "type": "LVGLSliderWidget", + "left": 168, + "top": 78, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "81da918e-2b7c-44e5-ec13-2c94413dd0a1", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "e21529f9-d973-4648-affa-951b4410e68b", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValCabParam3Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "56c16615-9299-416d-8166-c27b42e30eba", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "39a3f1d1-41da-44bc-ad8f-8c88f7ca3ee9", + "type": "LVGLLabelWidget", + "left": 703, + "top": 77, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "819575fa-8986-4334-8ec6-281a1fc3a11c", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValCabParam3Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "650cd603-a06f-4514-df4c-6e57c69e7837", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "68cb4e4b-2679-471e-b0e3-1a06628949ac", + "type": "LVGLLabelWidget", + "left": 13, + "top": 133, + "width": 96, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "2d8ceda4-7c69-47ac-daf6-30b03b114284", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValCabParam4Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "26492068-9c5d-4a23-fff5-dbe7f6257331", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param4", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "279fd811-425d-4d89-cc62-8c641fe65e74", + "type": "LVGLSliderWidget", + "left": 168, + "top": 133, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "cd51c8d9-8fc2-4d6f-fa2d-bdc9aa2dbac7", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "c21de9cc-81b9-41c7-d561-e2e1306a5949", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValCabParam4Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "f3f46cc1-c2b5-46e6-872b-29754730cbbc", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "2c95f850-5bef-4c4a-800b-87f7b37101ea", + "type": "LVGLLabelWidget", + "left": 703, + "top": 133, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "c081162d-97f7-4127-ff61-dc58ac923464", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValCabParam4Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "ec02fc96-6eb3-46ef-926a-a56202d6ae55", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "off", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "de57ae77-937b-4679-a8a9-f254bb343124", + "definition": { + "MAIN": { + "CHECKED": { + "text_color": "FB9230", + "bg_color": "513D2B", + "text_font": "MONTSERRAT_20" + }, + "DEFAULT": { + "text_font": "MONTSERRAT_20", + "pad_top": 0, + "pad_bottom": 0, + "pad_left": 0, + "pad_right": 0, + "pad_row": 0, + "pad_column": 0, + "border_width": 2, + "border_color": "373737" + } + } + } + }, + "group": "", + "groupIndex": 0, + "tabName": "Cab", + "tabNameType": "literal" + }, + { + "objID": "e47241a4-8d48-47d4-f520-372600aaddc8", + "type": "LVGLTabWidget", + "left": 10, + "top": 9, + "width": 790, + "height": 368, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "c0c2e13f-ad3b-45dc-d7ee-0ea486a1cfa7", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValEQTab", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "2828b067-5eac-46dd-e8ca-a6653d659802", + "type": "LVGLLabelWidget", + "left": 13, + "top": -148, + "width": 84, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "c2ccf6f1-7449-46fb-b34b-828c08e486d8", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValEQBlockLabel", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "88c19e2f-01de-44d8-8d3e-e19437be2e51", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "text_align": "AUTO", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Enable", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "f6d2f81d-aaa4-4d47-b0a4-e76d2eb036b5", + "type": "LVGLSwitchWidget", + "left": 168, + "top": -148, + "width": 80, + "height": 35, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "c8e50b29-a4cf-437c-e874-cce8f06645a6", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "43f9a1ea-503b-4028-8fde-b01f3a4500f8", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValEQBlockSwitch", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CHECKABLE|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "691a4e28-8c2b-41fb-d108-6234ba967d61", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + }, + "INDICATOR": { + "CHECKED": { + "bg_color": "#3890d5" + } + } + } + }, + "group": "", + "groupIndex": 0 + }, + { + "objID": "c9fad64a-4eda-4172-be00-3d3264b24b23", + "type": "LVGLDropdownWidget", + "left": 482, + "top": 8, + "width": 280, + "height": 53, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "e84d3f03-dfa4-441c-fd77-c437b6681d87", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [ + { + "objID": "ff0551dd-0707-4c99-fde0-ecf56f42994a", + "eventName": "VALUE_CHANGED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValEQModelDropdown", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "content", + "children": [ + { + "objID": "521447ef-b233-44a8-b757-2bc2c5421032", + "type": "LVGLContainerWidget", + "left": 0, + "top": 0, + "width": 130, + "height": 130, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "8075248c-65b0-42dc-c188-ea9673dd0615", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "b91b7bc0-94e1-4668-f0a8-4f96a06571c7", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_24" + } + }, + "SELECTED": { + "DEFAULT": { + "bg_color": "#3890d5" + }, + "CHECKED": { + "bg_color": "#3890d5", + "text_font": "MONTSERRAT_24" + } + } + } + }, + "group": "", + "groupIndex": 0 + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "7c9d347f-f7ca-41ed-d4d8-5be79cad8998", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_24" + } + }, + "SELECTED": { + "CHECKED": { + "bg_color": "#ffffff" + }, + "DEFAULT": { + "bg_color": "#ffffff" + }, + "CHECKED|PRESSED": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "options": "Guitar 1\nGuitar 2\nBass 1\nBass 2\nMess", + "optionsType": "literal", + "selected": 0, + "selectedType": "literal", + "direction": "bottom" + }, + { + "objID": "c33621a1-20cb-4632-cce8-cf867926d600", + "type": "LVGLLabelWidget", + "left": 13, + "top": -92, + "width": 96, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "bdb5d2eb-d436-4e15-a13e-a1f51ccd61df", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValEQParam0Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "8d8939f3-9e19-4224-941d-038fb2e4ff9e", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "45bab307-03dc-4956-f103-2dff61d05f95", + "type": "LVGLSliderWidget", + "left": 168, + "top": -92, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "b72a69bb-6ac6-4830-a395-ffa375891efd", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "c9a850ac-2a79-4fbb-c1d1-5ecacdaa1a51", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValEQParam0Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "ad258215-7dd1-460a-8f69-8b29a988f9f2", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "2da2b47f-4d1f-49a3-825e-6cf8e032dbf9", + "type": "LVGLLabelWidget", + "left": 703, + "top": -92, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "ba6dcf34-b0b1-40f1-d28d-7d3e05719bbd", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValEQParam0Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "b2cf5976-3cd1-4564-d05a-e2b6147dec74", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "72015f37-3c21-490f-dab4-d423ec88c100", + "type": "LVGLLabelWidget", + "left": 13, + "top": -36, + "width": 89, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "82ad782b-3c59-4d04-a547-ec9566c51bea", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValEQParam1Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "713bea0a-b0dc-437e-d06b-d583de2c2647", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param1", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "740d66e0-891f-4fb1-9fa0-f408fe8d95fd", + "type": "LVGLSliderWidget", + "left": 168, + "top": -36, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "a6e680e0-0c2e-499a-fbde-e09ab0d56b72", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "f7c01ade-c1bb-4cae-93c0-a99cc10cf827", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValEQParam1Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "bd600d76-d160-4192-e52e-4439b4d4ed58", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "3d447d55-3598-49e2-d5cc-324e115fd5fa", + "type": "LVGLLabelWidget", + "left": 703, + "top": -36, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "74fe43b9-72be-4e8f-ad3b-9e4b11eca2d9", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValEQParam1Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "31b6f43c-abd6-4f2b-bb8e-1511d45ef233", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "d3f6ae1e-9139-4961-d06e-ab2196353ec1", + "type": "LVGLLabelWidget", + "left": 13, + "top": 21, + "width": 94, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "cb4accf1-2d88-42a5-d264-e9846e71a8a8", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValEQParam2Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "b3733d21-0b8f-4e11-ad44-2d1b92b02b7e", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param2", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "916286d4-4076-4fba-ab70-fd1bf7bb6592", + "type": "LVGLSliderWidget", + "left": 168, + "top": 21, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "6a6df5ae-527d-4325-e48b-b3e99af8f42e", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "d50284c3-55ae-445a-fde8-442420daa930", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValEQParam2Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "4a95c9de-3864-49c4-c54b-737c48c00aa5", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "780eefef-689d-4a43-9a4e-ad2badeb4e66", + "type": "LVGLLabelWidget", + "left": 703, + "top": 21, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "61eb72e3-e806-4119-912b-c50d3d841688", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValEQParam2Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "79a108cc-e4eb-4ac0-b260-ceec2bb5fd27", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "5cf73d57-8a66-4811-dfeb-11cf083bb50c", + "type": "LVGLLabelWidget", + "left": 13, + "top": 77, + "width": 94, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "50d383cb-1677-4419-f9ee-d994d0ff7716", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValEQParam3Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "507b13ea-7038-44d5-af8b-dc69c8d7f197", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param3", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "e5c24ed5-fde8-4570-eb26-441867b11cc7", + "type": "LVGLSliderWidget", + "left": 168, + "top": 78, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "202d3acf-3ea4-4edb-ee38-398451fd940e", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "b9c47dc4-7f27-4991-81b8-310795fdb99b", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValEQParam3Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "9d9897a6-53be-44c2-ab5b-0b4b330fc013", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "f616a732-6e8f-4389-f224-c8b580794078", + "type": "LVGLLabelWidget", + "left": 703, + "top": 77, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "9568bf96-6326-446e-9750-0d5cc3094f9f", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValEQParam3Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "4d297258-b229-4acb-e039-7b9972542c5d", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "caa2ca2d-0783-458d-f032-185ade07ad34", + "type": "LVGLLabelWidget", + "left": 13, + "top": 133, + "width": 96, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "41c1b8da-2671-439b-e29d-6f63ad98f468", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValEQParam4Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "d0295eff-723a-479a-9736-bfd848da30b6", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param4", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "fde716d2-afad-485a-d121-94df1cfc20f3", + "type": "LVGLSliderWidget", + "left": 168, + "top": 133, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "5ec91acf-a22a-4d61-d2a1-391dd63a7e1f", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "74993f5c-654a-4226-a72c-fcea6bc7510f", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValEQParam4Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "bdbac25e-e26e-4576-d414-3cb87e42545d", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "0695145a-0848-4ac2-c249-38ab04256fdc", + "type": "LVGLLabelWidget", + "left": 703, + "top": 133, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "70ebeb34-eaf6-4119-c79f-589546188eca", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValEQParam4Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "c695d7f6-41a1-408b-c594-f4ebc26a6666", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "off", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "dc2008b2-eacd-4e90-f870-3d0d262c1831", + "definition": { + "MAIN": { + "CHECKED": { + "text_color": "FB9230", + "bg_color": "513D2B", + "text_font": "MONTSERRAT_20" + }, + "DEFAULT": { + "text_font": "MONTSERRAT_20", + "pad_top": 0, + "pad_bottom": 0, + "pad_left": 0, + "pad_right": 0, + "pad_row": 0, + "pad_column": 0, + "border_width": 2, + "border_color": "373737" + } + } + } + }, + "group": "", + "groupIndex": 0, + "tabName": "EQ", + "tabNameType": "literal" + }, + { + "objID": "633cc33d-5081-4543-fa09-7f27d95639b9", + "type": "LVGLTabWidget", + "left": 10, + "top": 9, + "width": 790, + "height": 368, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "25d03eec-aa89-41a4-d6a2-85d182e18f27", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValModTab", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "363ed0da-016d-48e2-d08d-ab33c281d877", + "type": "LVGLLabelWidget", + "left": 13, + "top": -148, + "width": 84, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "5ec41015-8c5b-41d4-c358-a00d322ba02d", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValModBlockLabel", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "aee3cc1c-298d-4abe-e595-b09e908988b1", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "text_align": "AUTO", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Enable", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "e27032d0-d27a-41d7-d9df-f96a525d4986", + "type": "LVGLSwitchWidget", + "left": 168, + "top": -148, + "width": 80, + "height": 35, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "8b5e608e-9af6-4164-b69d-32dcf91d1d22", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "6dc283dc-3882-4a2e-a5fa-f554e4fd6d14", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValModBlockSwitch", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CHECKABLE|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "8be4b87f-77d2-42f8-d030-f99c45e5518c", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + }, + "INDICATOR": { + "CHECKED": { + "bg_color": "#3890d5" + } + } + } + }, + "group": "", + "groupIndex": 0 + }, + { + "objID": "2b853ab7-1562-4a6b-c482-951d4639422d", + "type": "LVGLDropdownWidget", + "left": 482, + "top": 8, + "width": 280, + "height": 53, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "36ff7987-f9e9-4606-8d55-86313c1c6292", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [ + { + "objID": "53184a11-65f7-4561-e330-d74501251611", + "eventName": "VALUE_CHANGED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValModModelDropdown", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "content", + "children": [ + { + "objID": "b0451092-fa65-4d74-879c-603cae5073b7", + "type": "LVGLContainerWidget", + "left": 0, + "top": 0, + "width": 130, + "height": 130, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "76286b6e-68c6-4118-e9d2-67e5636b614b", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "caff8cfc-49be-40c2-c50c-77069fe9d6bf", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_24" + } + }, + "SELECTED": { + "DEFAULT": { + "bg_color": "#3890d5" + }, + "CHECKED": { + "bg_color": "#3890d5", + "text_font": "MONTSERRAT_24" + } + } + } + }, + "group": "", + "groupIndex": 0 + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "432bae8b-36df-477c-bb92-b5ac9adc597c", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_24" + } + }, + "SELECTED": { + "CHECKED": { + "bg_color": "#ffffff" + }, + "DEFAULT": { + "bg_color": "#ffffff" + }, + "CHECKED|PRESSED": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "options": "A-Chorus\nB-Chorus\nJet\nN-Jet\nO-Phase\nM-Vibe\nV-Roto\nVibrato\nO-Trem\nSine Trem\nBias Trem", + "optionsType": "literal", + "selected": 0, + "selectedType": "literal", + "direction": "bottom" + }, + { + "objID": "009cbf28-6389-41b8-fc48-6b2359e8f5a8", + "type": "LVGLLabelWidget", + "left": 13, + "top": -92, + "width": 96, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "9fed6573-48a4-4060-9934-828b0196b4bf", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValModParam0Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "a5ed7000-b51a-470a-e85c-eae3605ea687", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "a0409dc8-9adc-454c-ef7e-1cf5ff7f100f", + "type": "LVGLSliderWidget", + "left": 168, + "top": -92, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "0e955d90-6380-43ae-926c-504d70443cae", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "30bd60e2-9a1e-403c-a589-b7c5b68f4e01", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValModParam0Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "30afcecd-e783-4609-c463-2e27eb35b465", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "242ee02e-d708-4c73-8715-c8c749585770", + "type": "LVGLLabelWidget", + "left": 703, + "top": -92, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "34eef589-c5c2-4ac1-d14a-14090ab8e210", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValModParam0Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "10af5a5f-bea8-494a-b1ac-b7a2aa7d266a", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "cfaa974b-97cb-4aa0-c8dc-7783cf7966bc", + "type": "LVGLLabelWidget", + "left": 13, + "top": -36, + "width": 89, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "d36448fd-4b21-456e-ac5a-40e016bfdae2", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValModParam1Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "98404a96-d7ad-4494-8eb5-078f0812c246", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param1", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "cf232463-91d0-4953-8802-7da74f67ccb1", + "type": "LVGLSliderWidget", + "left": 168, + "top": -36, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "2258ac1d-9b8d-4b4a-9440-6f8e9274cfbf", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "5913b93f-6d44-48c4-eb97-2028e7277884", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValModParam1Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "d110566c-e46d-4e9e-a41e-f63df1e477b4", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "16d7af61-1bdb-457e-a5d7-56ca311da186", + "type": "LVGLLabelWidget", + "left": 703, + "top": -36, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "e841e4e8-a746-419f-8719-09b18e0ba0de", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValModParam1Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "91fce02e-3017-4cdc-c0d7-9e0f3007677a", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "12a64fad-63f1-4ca3-d22f-35f4f50b8c68", + "type": "LVGLLabelWidget", + "left": 13, + "top": 21, + "width": 94, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "75d9d670-faa2-4ccd-a736-3dfc347f3d87", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValModParam2Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "9e7b46c0-5deb-4133-c337-1a7ba087175f", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param2", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "53a67e44-d06e-46e3-8e82-337154d70805", + "type": "LVGLSliderWidget", + "left": 168, + "top": 21, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "cc0dca74-05de-4ace-8f88-e57067f462d8", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "fc3e2fc1-a622-471f-8335-ce6d8102b8e6", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValModParam2Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "efca56ef-123b-4b09-902e-e2af517d55f9", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "703c0bd1-d237-4637-da4c-e2ef651a18fd", + "type": "LVGLLabelWidget", + "left": 703, + "top": 21, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "ed405eff-67e3-4ec8-9528-1542180b969e", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValModParam2Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "804ebfc5-caa8-42be-bba5-c1a059f44117", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "5a6368b1-80a7-4aef-b444-61113a53cdf0", + "type": "LVGLLabelWidget", + "left": 13, + "top": 77, + "width": 94, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "15449922-abe4-4b23-a044-486fef726428", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValModParam3Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "6ff69739-683c-4eed-e206-85abff70c3ca", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param3", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "8e9f2caf-c8c8-4ba5-d57c-11967450478b", + "type": "LVGLSliderWidget", + "left": 168, + "top": 78, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "9e9d3f33-e0ae-48a5-e16a-8b15a084c6af", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "9fb46d51-e9fc-4a70-84be-ed17b893854f", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValModParam3Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "caad95b1-1137-4246-f01b-7bd3ccde6f06", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "17bffba6-5f70-4104-ee8c-33ecf4a78af9", + "type": "LVGLLabelWidget", + "left": 703, + "top": 77, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "acd8244a-c63e-4457-8829-c00305da0727", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValModParam3Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "fb08ce0d-56da-428b-b235-3183385450ec", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "ac3351aa-42e0-4c0b-aec9-5d6a08603401", + "type": "LVGLLabelWidget", + "left": 13, + "top": 133, + "width": 96, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "6d4f1732-9ab2-4ff8-ada2-498ce8def75c", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValModParam4Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "eb4e9e2a-4995-4bde-ec2a-4becbffa662d", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param4", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "19971912-6489-47c5-97c5-9b5fe000e6ed", + "type": "LVGLSliderWidget", + "left": 168, + "top": 133, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "2068142a-2228-43a3-9818-455a4b47e9dc", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "f875c4f7-b695-4551-b38c-1fe244b0b183", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValModParam4Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "635e385c-b989-4ceb-979a-9db44bfdb281", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "a5650971-024f-4f59-d298-d9dfd09b6bd0", + "type": "LVGLLabelWidget", + "left": 703, + "top": 133, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "d8cd3179-48da-4bf0-a1c9-7413ca70514c", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValModParam4Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "ffa36c60-f0cb-4541-ffe2-1711ba08e1fd", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "off", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "f6867992-e37d-4871-a86a-cfa4bcce1e9c", + "definition": { + "MAIN": { + "CHECKED": { + "text_color": "FB9230", + "bg_color": "513D2B", + "text_font": "MONTSERRAT_20" + }, + "DEFAULT": { + "text_font": "MONTSERRAT_20", + "pad_top": 0, + "pad_bottom": 0, + "pad_left": 0, + "pad_right": 0, + "pad_row": 0, + "pad_column": 0, + "border_width": 2, + "border_color": "373737" + } + } + } + }, + "group": "", + "groupIndex": 0, + "tabName": "Mod", + "tabNameType": "literal" + }, + { + "objID": "466d29f0-d8e3-4931-e1ef-0d64fee37562", + "type": "LVGLTabWidget", + "left": 10, + "top": 9, + "width": 790, + "height": 368, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "5718c177-5190-4eb6-941f-2f129a8561d8", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDlyTab", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "1b37f408-bc4a-4c35-9f6c-e520de1bccf2", + "type": "LVGLLabelWidget", + "left": 13, + "top": -148, + "width": 84, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "362f9c60-a19d-4722-923c-714dcfb74f3c", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDlyBlockLabel", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "9a02a722-bbe8-4353-a841-d48652cf1942", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "text_align": "AUTO", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Enable", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "22b2d972-3ccc-4164-ce62-c782f411ae6b", + "type": "LVGLSwitchWidget", + "left": 168, + "top": -148, + "width": 80, + "height": 35, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "fd5561a0-f7cc-49ee-c7c2-7af9f2b92d43", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "61ac2872-39ed-4844-d9e6-d4d4480f3d5d", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValDlyBlockSwitch", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CHECKABLE|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "00c32fa8-4d7b-4597-de16-265eb194b8f3", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + }, + "INDICATOR": { + "CHECKED": { + "bg_color": "#3890d5" + } + } + } + }, + "group": "", + "groupIndex": 0 + }, + { + "objID": "2e99eadb-43d1-49f4-b08a-877b5a6547e8", + "type": "LVGLDropdownWidget", + "left": 482, + "top": 8, + "width": 280, + "height": 53, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "966e926f-3a45-4790-a9e3-ba317e6dbdcf", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [ + { + "objID": "5bad58ed-da3c-4422-a6ca-2ba390df0b43", + "eventName": "VALUE_CHANGED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValDlyModelDropdown", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "content", + "children": [ + { + "objID": "e831b37e-b5dd-4c60-9428-3f483d3e41b4", + "type": "LVGLContainerWidget", + "left": 0, + "top": 0, + "width": 130, + "height": 130, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "dd91099c-411d-40f2-9a3d-c5f6d7466185", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "6f32973c-099b-448a-97b8-b2e7751c5449", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_24" + } + }, + "SELECTED": { + "DEFAULT": { + "bg_color": "#3890d5" + }, + "CHECKED": { + "bg_color": "#3890d5", + "text_font": "MONTSERRAT_24" + } + } + } + }, + "group": "", + "groupIndex": 0 + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "37dbf842-7cb1-4852-d27c-cd8a5e910561", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_24" + } + }, + "SELECTED": { + "CHECKED": { + "bg_color": "#ffffff" + }, + "DEFAULT": { + "bg_color": "#ffffff" + }, + "CHECKED|PRESSED": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "options": "Pure\nAnalog\nSlapback\nSweet Echo\nTape\nTube\nRev Echo\nRing Echo\nSweep Echo\nPing Pong", + "optionsType": "literal", + "selected": 0, + "selectedType": "literal", + "direction": "bottom" + }, + { + "objID": "0c9b9390-662f-4d8d-efa2-36e8316e4a45", + "type": "LVGLLabelWidget", + "left": 13, + "top": -92, + "width": 96, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "b0946932-ff1a-4c2b-aeec-acfdfec8acbf", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDlyParam0Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "a5f877ca-e02d-46ce-c159-32af99c2e64b", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "b0ca7fab-8a8f-4d7c-9765-6c2950e18350", + "type": "LVGLSliderWidget", + "left": 168, + "top": -92, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "5f01b273-e192-49f0-e469-71e8715696ca", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "c5e9e4db-1930-48e7-b55f-15d26c6eb0f9", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValDlyParam0Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "56b418c6-96ed-4eaa-8a40-48a327cca5bf", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "72f7d450-e8f5-424f-df23-8f705831470b", + "type": "LVGLLabelWidget", + "left": 703, + "top": -92, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "b214e1aa-37c2-4fc7-8cd4-e1792c5f6e99", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDlyParam0Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "f209438b-a307-4542-a01a-056859434d67", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "23a0f4cd-d323-404d-a788-7c1684a82339", + "type": "LVGLLabelWidget", + "left": 13, + "top": -36, + "width": 89, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "10fa9160-7228-431f-80bd-ae87d7bb8a9c", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDlyParam1Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "35b29fab-0704-4240-8ede-dcba199b65a3", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param1", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "4336b87b-a4a9-4189-e9fe-4ec8a627a707", + "type": "LVGLSliderWidget", + "left": 168, + "top": -36, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "c6f48d66-e884-4540-9d0b-832fd7dbba03", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "a9417b05-14b4-4c5c-ef25-a452195db538", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValDlyParam1Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "96f61c22-40b5-4b74-f098-522bbdc1151e", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "374b5b3a-c665-423c-d0bb-70caeb430374", + "type": "LVGLLabelWidget", + "left": 703, + "top": -36, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "82956bd1-a05e-44e4-9d37-866a269d9720", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDlyParam1Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "1f88b05d-74aa-4384-97c3-e30a4dbab4a5", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "0a4d4b1e-51e9-4116-88ff-d0fb10daed6a", + "type": "LVGLLabelWidget", + "left": 13, + "top": 21, + "width": 94, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "df11ae57-582e-466f-f4cc-97fb73171514", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDlyParam2Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "edf61c5c-bcd1-47b1-dea4-0f82fedf079f", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param2", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "f7536faf-7dcc-4462-e41a-db2ebcb9253f", + "type": "LVGLSliderWidget", + "left": 168, + "top": 21, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "ea917c70-977c-44ed-a862-732a3e2d49c8", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "0c79e159-76c1-467e-b8a5-8d283163b2a7", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValDlyParam2Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "3e08925f-a8d7-40d3-c7b9-f98893b15c18", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "66a5103e-6128-4afb-f04a-98f981902c8f", + "type": "LVGLLabelWidget", + "left": 703, + "top": 21, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "0fb9b1b8-7ec0-4367-c8a3-4bc8f30eead4", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDlyParam2Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "a8ff70a5-0c5e-4b46-a421-6a47e161a2dd", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "e8bc7acb-8db0-4917-fcff-2e63b7ff0f1c", + "type": "LVGLLabelWidget", + "left": 13, + "top": 77, + "width": 94, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "354ef881-e463-4c17-c8cf-ac6d6ee5e0e6", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDlyParam3Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "f627f5f1-3a7d-47f8-a60c-f674ac14db64", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param3", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "c843f6b2-d3da-4f02-d045-4617292a7f36", + "type": "LVGLSliderWidget", + "left": 168, + "top": 78, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "11bd961b-1386-4c4b-e293-273762d73f61", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "d1046a00-ddfd-488c-bdea-53f6087f1769", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValDlyParam3Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "1e002d95-9d58-46d1-afd5-07ca6fb8ef9e", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "7a2f544c-c4e2-40b3-8af1-bfd2d0e06529", + "type": "LVGLLabelWidget", + "left": 703, + "top": 77, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "d04a5507-f48e-4629-d15c-c0cb101a97a6", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDlyParam3Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "5e99d942-5275-47b6-827a-6b57ef219465", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "b2016ff0-cb21-4177-a53d-86275776acc4", + "type": "LVGLLabelWidget", + "left": 13, + "top": 133, + "width": 96, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "5f0dc0da-f0c0-4f84-b990-82c7e20f1b8f", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDlyParam4Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "718f85aa-6c18-431c-d120-b1db3ae04c76", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param4", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "f85ddca6-6f4a-4d4c-8504-7e768180ee10", + "type": "LVGLSliderWidget", + "left": 168, + "top": 133, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "9316b557-7e62-4c06-9bd9-f39f76f32434", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "f976bd0f-47e3-4df0-9595-054982a8a404", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValDlyParam4Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "a1313fb0-20df-4e58-cda4-5715148e4d3d", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "b6e7cb92-1afc-48b4-edbe-209d06a972c7", + "type": "LVGLLabelWidget", + "left": 703, + "top": 133, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "07bb9166-944a-41ee-94fa-9cdd9231a8ce", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDlyParam4Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "4ccffe78-4008-4e3c-88b7-433b48b8181a", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "off", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "2ec73b29-4a24-40fa-8c82-628e869a20de", + "definition": { + "MAIN": { + "CHECKED": { + "text_color": "FB9230", + "bg_color": "513D2B", + "text_font": "MONTSERRAT_20" + }, + "DEFAULT": { + "text_font": "MONTSERRAT_20", + "pad_top": 0, + "pad_bottom": 0, + "pad_left": 0, + "pad_right": 0, + "pad_row": 0, + "pad_column": 0, + "border_width": 2, + "border_color": "373737" + } + } + } + }, + "group": "", + "groupIndex": 0, + "tabName": "Dly", + "tabNameType": "literal" + }, + { + "objID": "f1ce3be2-ab43-4a59-8783-ffb52abb4b59", + "type": "LVGLTabWidget", + "left": 10, + "top": 9, + "width": 790, + "height": 368, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "90dfac42-fa86-49c8-f0f1-42673b3a0f3f", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValRvbTab", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "aef499c6-bc04-4c11-bfa6-bfab684099a6", + "type": "LVGLLabelWidget", + "left": 13, + "top": -148, + "width": 84, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "246c04d1-2991-40e2-e08d-7929f7472d2b", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValRvbBlockLabel", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "37f68168-8724-4241-d0e4-57afe966d4d4", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "text_align": "AUTO", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Enable", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "5141ac44-7d85-479e-ef5b-e63b089e6c8b", + "type": "LVGLSwitchWidget", + "left": 168, + "top": -148, + "width": 80, + "height": 35, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "c7c23cd8-679d-48bb-e1bd-25e244ce7b8d", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "d90fb8a0-962d-4173-9cfc-4c6b05a4f5fa", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValRvbBlockSwitch", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CHECKABLE|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "aef13c2a-e917-4ab6-9a73-7c9753dbef92", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + }, + "INDICATOR": { + "CHECKED": { + "bg_color": "#3890d5" + } + } + } + }, + "group": "", + "groupIndex": 0 + }, + { + "objID": "f669fb27-0455-4d77-817f-308e77b126ba", + "type": "LVGLDropdownWidget", + "left": 482, + "top": 8, + "width": 280, + "height": 53, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "4276a618-6e3e-4cb8-b62c-ad2984cf57d9", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [ + { + "objID": "b7bec17f-de3f-4d6c-d08f-5e21454b87fa", + "eventName": "VALUE_CHANGED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValRvbModelDropdown", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "content", + "children": [ + { + "objID": "f490f2e2-f460-459b-93de-7b434ab45ecb", + "type": "LVGLContainerWidget", + "left": 0, + "top": 0, + "width": 130, + "height": 130, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "c009e6f4-6bd8-4b5e-e4bd-42ca40f99410", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "297b91ff-aac3-4c68-bee8-85bfb02f8a3f", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_24" + } + }, + "SELECTED": { + "DEFAULT": { + "bg_color": "#3890d5" + }, + "CHECKED": { + "bg_color": "#3890d5", + "text_font": "MONTSERRAT_24" + } + } + } + }, + "group": "", + "groupIndex": 0 + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "74c90158-11cd-448a-bc49-530dfb19f147", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_24" + } + }, + "SELECTED": { + "CHECKED": { + "bg_color": "#ffffff" + }, + "DEFAULT": { + "bg_color": "#ffffff" + }, + "CHECKED|PRESSED": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "options": "Air\nRoom\nHall\nChurch\nPlate L\nPlate\nSpring\nN-Star\nDeepsea\nSweet Space", + "optionsType": "literal", + "selected": 0, + "selectedType": "literal", + "direction": "bottom" + }, + { + "objID": "c6c3f18c-0213-4eff-c538-eb09d913d5cc", + "type": "LVGLLabelWidget", + "left": 13, + "top": -92, + "width": 96, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "b2068734-79d3-4275-9076-8db8c4fc78a3", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValRvbParam0Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "d40a84da-f8a8-4591-b1fa-9fa0998edec9", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "f24e21e3-5eb1-42f9-bb0f-168aa6dfbe47", + "type": "LVGLSliderWidget", + "left": 168, + "top": -92, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "4366635d-a536-4320-91a0-e1a89c2b16b3", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "a20c82ab-bd86-48ff-cb4e-0c652e33ce36", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValRvbParam0Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "72d435c5-e3a6-4ebe-a141-5c908ca0d1a1", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "4b5fb97f-0c36-456e-e620-810a30e3bf06", + "type": "LVGLLabelWidget", + "left": 703, + "top": -92, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "2d53cce3-62e8-4caf-cdaf-899a68f08da5", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValRvbParam0Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "88eddd73-a449-4a0a-e73c-272f5d25017e", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "63541407-d150-4c6f-edfb-d44b2db52e42", + "type": "LVGLLabelWidget", + "left": 13, + "top": -36, + "width": 89, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "1c03ab36-4dc6-467f-b06a-9a9501548bc1", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValRvbParam1Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "5ba91228-04c7-4035-9ed1-5bd1a6c91d53", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param1", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "0157dbf5-760b-4cea-b70a-223dbb710e2b", + "type": "LVGLSliderWidget", + "left": 168, + "top": -36, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "0b0a6bb1-10ad-4d4b-9528-09e96681d6f1", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "aea01293-cf09-4e6e-ac1a-04139c1fb3dc", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValRvbParam1Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "ea6e970c-041a-4f90-b156-e60431c86103", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "ba301622-c789-420f-84c4-3f045a3602b4", + "type": "LVGLLabelWidget", + "left": 703, + "top": -36, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "44a517e4-7468-4347-dcc4-529f760ed10a", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValRvbParam1Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "958fb903-df5f-41d2-a865-b628fa6222e1", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "ebb75a32-7030-416e-86b8-bdae7ad97bb2", + "type": "LVGLLabelWidget", + "left": 13, + "top": 21, + "width": 94, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "4dbb8e1c-f83a-447b-f29a-f12a4a6d9ace", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValRvbParam2Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "56234a2c-9be4-4cd9-db42-42a602c632bf", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param2", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "05a8caf6-6b60-4591-8b14-e3bb6ed77070", + "type": "LVGLSliderWidget", + "left": 168, + "top": 21, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "bdd4d512-cbf4-4dea-b203-972e594fd83d", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "ae5172fd-060f-495e-f20a-e145be341529", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValRvbParam2Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "916ef8f5-c398-4fa5-c80c-1545750635e4", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "b17fa26e-4964-4fa5-a073-08f8d9cc3622", + "type": "LVGLLabelWidget", + "left": 703, + "top": 21, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "0e784b91-8ab3-41a5-b8de-1aeec76fe3e4", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValRvbParam2Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "db28b81f-909b-449f-b9aa-f7ff7c926abb", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "e528da78-ce59-4ab2-864e-74ac970cdaa7", + "type": "LVGLLabelWidget", + "left": 13, + "top": 77, + "width": 94, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "dd91103e-e868-408e-eeb1-bf1c1e671af3", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValRvbParam3Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "8fa9ac69-b40b-4018-a15d-0cf7964553f0", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param3", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "03398a53-df23-4b0c-e33b-010618e1806d", + "type": "LVGLSliderWidget", + "left": 168, + "top": 78, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "35e04265-bad5-4002-986b-ea169d47c4f2", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "4ce8b974-c468-4ba6-8b72-eade17528ee2", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValRvbParam3Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "a9f88ee2-579a-4a59-f1a3-e85f13d334f9", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "c62293c7-f750-4647-91ac-62aa4c4f62bf", + "type": "LVGLLabelWidget", + "left": 703, + "top": 77, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "d80631b1-39d6-472e-bee7-54ce38aeb027", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValRvbParam3Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "fcb0e3da-4d9c-41b8-bc9d-c750ad4642f1", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "0e005fa3-0d04-44ec-91d2-e4c603346e36", + "type": "LVGLLabelWidget", + "left": 13, + "top": 133, + "width": 96, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "6ef83c8d-708e-4971-9b02-8085c6dff182", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValRvbParam4Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "159c7670-250d-4847-d6cc-98997e578dc8", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param4", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "995890a4-5e29-43f5-81b1-1c775ea64d5f", + "type": "LVGLSliderWidget", + "left": 168, + "top": 133, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "9e9a0a40-5d1b-4fc0-baa5-c4b59737117c", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "34b6a69d-2004-4929-8426-bc191a53130c", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValRvbParam4Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "8e5bfa8a-3c24-4448-d69f-669e4edd7652", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "b2a5be3c-58f0-4b18-c4fa-8162bdbc2540", + "type": "LVGLLabelWidget", + "left": 703, + "top": 133, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "d17cdc55-e6ac-409f-9cd3-f7151e5ed64a", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValRvbParam4Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "215977da-8bc6-49f3-bea4-2f6a3a34faf9", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "off", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "f66d870c-58eb-4031-e673-da5ae911f4cd", + "definition": { + "MAIN": { + "CHECKED": { + "text_color": "FB9230", + "bg_color": "513D2B", + "text_font": "MONTSERRAT_20" + }, + "DEFAULT": { + "text_font": "MONTSERRAT_20", + "pad_top": 0, + "pad_bottom": 0, + "pad_left": 0, + "pad_right": 0, + "pad_row": 0, + "pad_column": 0, + "border_width": 2, + "border_color": "373737" + } + } + } + }, + "group": "", + "groupIndex": 0, + "tabName": "Rvb", + "tabNameType": "literal" + }, + { + "objID": "9bfc7813-a12c-44b4-f7b4-79c9e6faade8", + "type": "LVGLTabWidget", + "left": 10, + "top": 9, + "width": 790, + "height": 368, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "1c7a3a6a-3614-4b55-ceef-fa226a597b7f", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNSTab", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "7876578b-0ad0-4b59-e5b8-b25756de9d77", + "type": "LVGLLabelWidget", + "left": 13, + "top": -148, + "width": 84, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "bffef212-3ab0-4962-be19-858574401e1e", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNSBlockLabel", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "2d8b434f-f46e-4a8e-92db-81c30f734a77", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "text_align": "AUTO", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Enable", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "1fc7535e-36fa-4d60-df53-0c4b5579a6c0", + "type": "LVGLSwitchWidget", + "left": 168, + "top": -148, + "width": 80, + "height": 35, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "f90e5f40-5190-4243-f64b-40eea2ffcc1d", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "2d8ac528-9686-499a-9440-9b91d560bafe", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValNSBlockSwitch", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CHECKABLE|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "afa4a07e-038d-433f-9f8c-2abbfb0d82b8", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + }, + "INDICATOR": { + "CHECKED": { + "bg_color": "#3890d5" + } + } + } + }, + "group": "", + "groupIndex": 0 + }, + { + "objID": "0782e7bd-7ec3-44d6-ef32-a0e3f3082f00", + "type": "LVGLDropdownWidget", + "left": 482, + "top": 8, + "width": 280, + "height": 53, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "beb088fa-80b1-477a-ad11-ed0a1a15bdcf", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [ + { + "objID": "0a58c987-3c72-4787-b33d-7210ad9758bb", + "eventName": "VALUE_CHANGED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValNSModelDropdown", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "content", + "children": [ + { + "objID": "cb64c10b-2253-4a36-ae5b-f5c15975cc59", + "type": "LVGLContainerWidget", + "left": 0, + "top": 0, + "width": 130, + "height": 130, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "8f5d5c36-bba0-4c18-c060-0e540acb73d6", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "5043b33e-8d21-4ed3-baab-7f5f73dd2ef2", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_24" + } + }, + "SELECTED": { + "DEFAULT": { + "bg_color": "#3890d5" + }, + "CHECKED": { + "bg_color": "#3890d5", + "text_font": "MONTSERRAT_24" + } + } + } + }, + "group": "", + "groupIndex": 0 + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "24e1702f-751b-4c95-d3ce-5a1b8dd9e8a3", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_24" + } + }, + "SELECTED": { + "CHECKED": { + "bg_color": "#ffffff" + }, + "DEFAULT": { + "bg_color": "#ffffff" + }, + "CHECKED|PRESSED": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "options": "Todo", + "optionsType": "literal", + "selected": 0, + "selectedType": "literal", + "direction": "bottom" + }, + { + "objID": "6dc74100-19a3-44fb-879f-a96db1a2e751", + "type": "LVGLLabelWidget", + "left": 13, + "top": -92, + "width": 96, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "2b5f77b9-47ee-43e2-c34c-07f799c7ce59", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNSParam0Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "63db61c1-1877-498f-b4c9-4709bd123863", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "72f5e6a4-50f9-4a7c-e2e9-5906bc1bb093", + "type": "LVGLSliderWidget", + "left": 168, + "top": -92, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "114efb9c-b92a-41d7-f8af-ad890f10920d", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "0ee500f4-f806-4ab9-e0af-6f0fb6ef85bc", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValNSParam0Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "729a2c86-67bd-4450-849e-6b8b88c8e526", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "983b5805-2566-4a5c-af0a-ded230e498a4", + "type": "LVGLLabelWidget", + "left": 703, + "top": -92, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "963a1141-bd2e-4c15-abfc-46a2d6bde6ad", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNSParam0Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "b0c2f0d8-683b-4484-cf8b-68085c0e9072", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "337744d0-0af1-46d1-994a-c8f4d80dd7f0", + "type": "LVGLLabelWidget", + "left": 13, + "top": -36, + "width": 89, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "63aec0c2-cec4-481c-9237-57dcb6f1e172", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNSParam1Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "8717255f-47f1-4d34-a979-01f7abcced19", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param1", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "320286a6-f85d-4f97-d993-a7b638c29156", + "type": "LVGLSliderWidget", + "left": 168, + "top": -36, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "3d12930f-b80d-40bd-b5ef-a40b6d257f54", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "2e19a174-1a00-4797-87be-69f9e5fc9dfe", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValNSParam1Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "41c21ddb-7ff5-4857-a855-435c6f6e971e", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "ede63e58-8c08-44df-81fd-7522a7e70d8f", + "type": "LVGLLabelWidget", + "left": 703, + "top": -36, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "37795c60-d374-4e31-eda7-2f905d9ed7fa", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNSParam1Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "67704846-c1a6-4930-b735-d2ec2ab0bddd", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "64cd6e7a-358e-4e3b-9341-9e5f62cf78f1", + "type": "LVGLLabelWidget", + "left": 13, + "top": 21, + "width": 94, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "2838958b-23e8-4a5e-ac95-7306a4dfa28f", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNSParam2Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "c8e3da7a-f370-4bb5-efa2-d8f6b5592913", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param2", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "eed838a7-b79c-4979-c4b7-57509360c0f4", + "type": "LVGLSliderWidget", + "left": 168, + "top": 21, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "90d8dd38-44ab-47c2-82fd-632f34543d4b", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "60f21270-4f27-43e3-e7db-ceacd0246d8a", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValNSParam2Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "51c8131c-bbd4-4e18-b166-34f5ca7bade5", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "0fe6ed64-4ebe-4bf1-b63d-497e786a7833", + "type": "LVGLLabelWidget", + "left": 703, + "top": 21, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "3f6d34fb-2890-452d-a854-de082c9b42be", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNSParam2Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "0e6f1ec4-20f6-436d-a66b-6711ad5bb772", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "b2cc775b-e2fe-42b5-c3fc-3535b48e2b9e", + "type": "LVGLLabelWidget", + "left": 13, + "top": 77, + "width": 94, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "7fc160d6-b55f-409d-fedc-70afab65f262", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNSParam3Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "501e7d7d-7d37-41ca-cab3-351229e9cde1", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param3", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "e577d296-bbff-41b6-ad3f-c517a056b486", + "type": "LVGLSliderWidget", + "left": 168, + "top": 78, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "7e7a9c67-95dc-403c-e472-d0980f0015c2", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "d60a866b-6512-4bd6-a1f1-5f19e9ab24dd", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValNSParam3Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "57bf38d5-8d05-424e-d814-d9dd66f8ccd5", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "99b69d8c-05e9-460c-a92c-cd4d52393b79", + "type": "LVGLLabelWidget", + "left": 703, + "top": 77, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "a6124d07-905d-48dd-c65e-2ca7144e7bd4", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNSParam3Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "e29f6330-e791-4f67-80a7-a34763d95529", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "1d0b9c41-8f74-4644-85e9-fde7228bd434", + "type": "LVGLLabelWidget", + "left": 13, + "top": 133, + "width": 96, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "8ba97afa-24f3-48c9-a793-584aee7dacd6", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNSParam4Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "b5787768-0c68-4261-b29f-daf9428a1ac8", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param4", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "ba80b8b1-10ac-44d3-afaa-4274cec40c95", + "type": "LVGLSliderWidget", + "left": 168, + "top": 133, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "b347141f-0e78-4a44-c20e-7aa891d52b11", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "f0538888-3c2f-4506-b9c1-e9618567b9b0", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValNSParam4Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "b12961a9-0869-4cc1-cf74-f1064e0c49c0", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "2a899bc1-6dd5-47f9-8c29-d0b6cef14b9a", + "type": "LVGLLabelWidget", + "left": 703, + "top": 133, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "74f19f1c-aaea-414b-9b69-f489f3ab3d4e", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNSParam4Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "6acfa79c-0b53-4133-f9f5-0a26317adbba", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "off", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "f125cd97-a537-4369-a5e2-79eaac0277c8", + "definition": { + "MAIN": { + "CHECKED": { + "text_color": "FB9230", + "bg_color": "513D2B", + "text_font": "MONTSERRAT_20" + }, + "DEFAULT": { + "text_font": "MONTSERRAT_20", + "pad_top": 0, + "pad_bottom": 0, + "pad_left": 0, + "pad_right": 0, + "pad_row": 0, + "pad_column": 0, + "border_width": 2, + "border_color": "373737" + } + } + } + }, + "group": "", + "groupIndex": 0, + "tabName": "NS", + "tabNameType": "literal" + }, + { + "objID": "2bdccf63-36b8-4fde-a577-aab9f799100e", + "type": "LVGLTabWidget", + "left": 10, + "top": 9, + "width": 790, + "height": 368, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "f2034638-510c-4058-84e4-36795372d147", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValGlobTab", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "c9c301c3-8979-46aa-8abd-ef637f3e8347", + "type": "LVGLLabelWidget", + "left": 13, + "top": -148, + "width": 88, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "4ee7263e-44f9-48ab-cc11-c24e5ea1f820", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValGlobNoCabLabel", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "7499b82e-8262-4575-99be-5f8b93e5573a", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "text_align": "AUTO", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "No Cab", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "789e416c-f656-4de5-e3dc-08b1479fe7bf", + "type": "LVGLSwitchWidget", + "left": 168, + "top": -148, + "width": 80, + "height": 35, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "54f552c6-9274-4ee7-9005-861a53821de5", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "e82f5f9d-e2c9-412a-86f2-13bae783ce01", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValGlobNoCabSwitch", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CHECKABLE|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "55cd5b3b-1f44-4c1c-a57a-63d2c32699da", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + }, + "INDICATOR": { + "CHECKED": { + "bg_color": "#3890d5" + } + } + } + }, + "group": "", + "groupIndex": 0 + }, + { + "objID": "f96221fd-fd01-4677-e612-190f30320f6b", + "type": "LVGLLabelWidget", + "left": 13, + "top": -92, + "width": 134, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "900ad1cc-a0df-490a-c34a-f6961413565d", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValGlobInputLevelLabel", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "8480baf7-6726-4444-d343-c00289ca8c43", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Input Level", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "4417fd72-8e63-4151-f428-e965e5b66e72", + "type": "LVGLSliderWidget", + "left": 168, + "top": -92, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "507b18f8-9370-4f19-a253-55ad2dcee050", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "96e651dd-466f-451d-ed5f-b4478f46daa7", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValGlobInputLevelSlider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "8c07c8ff-a0f3-467c-a870-a3805c9fb535", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "3315dfd7-88d5-4ff9-e530-9ba3e6d16cf7", + "type": "LVGLLabelWidget", + "left": 703, + "top": -92, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "97eb1816-2651-4b91-8212-c0da73716664", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValGlobInputLevelValue", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "473ac37c-cbb6-43c0-b5ef-86dd5dda2c48", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "off", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "14e52a9d-6767-4cb1-8eb2-de00d2fa6880", + "definition": { + "MAIN": { + "CHECKED": { + "text_color": "FB9230", + "bg_color": "513D2B", + "text_font": "MONTSERRAT_20" + }, + "DEFAULT": { + "text_font": "MONTSERRAT_20", + "pad_top": 0, + "pad_bottom": 0, + "pad_left": 0, + "pad_right": 0, + "pad_row": 0, + "pad_column": 0, + "border_width": 2, + "border_color": "373737" + } + } + } + }, + "group": "", + "groupIndex": 0, + "tabName": "Glob", + "tabNameType": "literal" + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "off", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedState": false, + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "f7c45a3f-53bc-4535-d2b9-93394a6149b9", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "1F1F1F", + "text_font": "MONTSERRAT_24", + "outline_color": "#3b3c40", + "outline_width": 3, + "bg_opa": 255 + }, + "CHECKED": { + "text_font": "MONTSERRAT_24", + "text_color": "FB9230", + "bg_opa": 255, + "bg_color": "#1f1f1f" + } + } + } + }, + "group": "", + "groupIndex": 0, + "tabviewPosition": "TOP", + "tabviewSize": 60 + }, + { + "objID": "d2793565-3886-41e7-f9ca-9582d42a2fea", + "type": "LVGLImageWidget", + "left": 354, + "top": 410, + "width": 87, + "height": 70, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "895521aa-27f0-495c-b0ba-d540fd74b968", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "3d8c4305-47c8-46b8-caa3-678de709d9b9", + "eventName": "PRESSED", + "handlerType": "action", + "action": "CloseSettingsPage", + "userData": 0 + } + ], + "identifier": "ui_ValCloseimage", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "ADV_HITTEST|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "d8eb91f4-497e-40d5-f20f-11c6d69d2119" + }, + "group": "", + "groupIndex": 0, + "image": "tick", + "setPivot": false, + "pivotX": 0, + "pivotY": 0, + "zoom": 256, + "angle": 0, + "innerAlign": "CENTER" + } + ], + "widgetFlags": "CLICKABLE|PRESS_LOCK|CLICK_FOCUSABLE|GESTURE_BUBBLE|SNAPPABLE|SCROLL_ELASTIC", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "5731cfd1-75b4-49e2-b2bc-756e032a4d4b", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "1F1F1F" + } + } + } + }, + "groupIndex": 0 + } + ], + "connectionLines": [], + "localVariables": [], + "userProperties": [], + "name": "ValSettings", + "left": 0, + "top": 0, + "width": 800, + "height": 480, + "isUsedAsUserWidget": false, + "createAtStart": true, + "deleteOnScreenUnload": false } ], "userWidgets": [], diff --git a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state index 8c954bf0..3266a82f 100644 --- a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state +++ b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state @@ -165,8 +165,7 @@ "enableClose": false, "icon": "svg:hierarchy" } - ], - "active": true + ] }, { "type": "tabset", @@ -189,7 +188,7 @@ { "type": "tabset", "id": "EDITORS", - "weight": 65, + "weight": 63.29315960912052, "enableDeleteWhenEmpty": false, "enableClose": false, "children": [ @@ -204,12 +203,13 @@ }, "icon": "svg:page" } - ] + ], + "active": true }, { "type": "row", "id": "#55e73ab0-fa96-4ca0-8eb9-9c3aaf1fe427", - "weight": 20, + "weight": 21.706840390879478, "children": [ { "type": "tabset", @@ -974,11 +974,7 @@ "selection": { "0": { "0": { - "2": {}, - "10": { - "$selected": true - }, - "11": {} + "$selected": true } } }, @@ -1017,6 +1013,30 @@ "secondToPx": 200, "scrollLeft": 0 } + }, + "[Tonex_Controller_800_480land.eez-project]:/userPages/2[flow-state]": { + "selection": { + "0": { + "0": { + "1": { + "$selected": true + } + } + } + }, + "transform": { + "translate": { + "x": -400, + "y": -240 + }, + "scale": 1 + }, + "timeline": { + "isEditorActive": false, + "position": 0, + "secondToPx": 200, + "scrollLeft": 0 + } } }, "activeOutputSection": 0, @@ -1025,16 +1045,17 @@ "searchMatchWholeWord": false, "replaceEnabled": false, "replaceText": "", + "pageRuntimeFrontFace": true, "breakpoints": {}, "watchExpressions": [], "showComponentDescriptions": true, "logsPanelFilter": "all", "selectedStylePropertyName": "", - "lvglPart": "MAIN", - "lvglState": "DEFAULT", + "lvglPart": "ITEMS", + "lvglState": "CHECKED", "lvglExpandedPropertiesGroup": [ - "MISCELLANEOUS", - "BACKGROUND" + "TEXT", + "BORDER" ], "showInactiveFlowsInDebugger": true, "globalFlowZoom": true, From 29c11ac42688a0ea02eb27d270e29e0cf8d5d6c3 Mon Sep 17 00:00:00 2001 From: Greg Smith Date: Sun, 9 Nov 2025 20:26:22 +1100 Subject: [PATCH 04/34] More work on GP5 UI --- source/main/display_valeton.c | 1080 ++++++++++++++++- .../main/ui_generated_800x480land/screens.c | 6 +- .../main/ui_generated_800x480land/screens.h | 2 +- .../Tonex_Controller_800_480land.eez-project | 4 +- ...ontroller_800_480land.eez-project-ui-state | 16 +- 5 files changed, 1037 insertions(+), 71 deletions(-) diff --git a/source/main/display_valeton.c b/source/main/display_valeton.c index bbdef8ac..4b482e61 100644 --- a/source/main/display_valeton.c +++ b/source/main/display_valeton.c @@ -416,186 +416,1152 @@ uint8_t valeton_update_ui_parameters(void) if (param_entry->Value) { lv_img_set_src(objects.ui_icon_val_nr, (lv_obj_t*)&img_nr_on); + lv_obj_add_state(objects.ui_val_nr_block_switch, LV_STATE_CHECKED); } else { lv_img_set_src(objects.ui_icon_val_nr, (lv_obj_t*)&img_nr_off); - } + lv_obj_clear_state(objects.ui_val_nr_block_switch, LV_STATE_CHECKED); + } + } break; + + case VALETON_PARAM_NR_TYPE: + { + lv_dropdown_set_selected(objects.ui_val_nr_model_dropdown, (int)param_entry->Value); + + switch ((int)param_entry->Value) + { + case VALETON_EFFECT_NR_GATE: + { + // enable param 0, hide the rest + lv_obj_clear_flag(objects.ui_val_nr_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_nr_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_nr_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_nr_param0_label, "Threshold"); + lv_slider_set_range(objects.ui_val_nr_param0_slider, 0, 100); + + lv_obj_add_flag(objects.ui_val_nr_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_nr_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_nr_param1_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_nr_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_nr_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_nr_param2_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_nr_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_nr_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_nr_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_nr_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_nr_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_nr_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + } + } break; + + case VALETON_PARAM_NR_PARAM_0: + { + lv_slider_set_value(objects.ui_val_nr_param0_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_nr_param0_value, value_string); + } break; + + case VALETON_PARAM_NR_PARAM_1: + { + lv_slider_set_value(objects.ui_val_nr_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_nr_param1_value, value_string); } break; - //VALETON_PARAM_NR_PARAM_0 + case VALETON_PARAM_NR_PARAM_2: + { + lv_slider_set_value(objects.ui_val_nr_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_nr_param2_value, value_string); + } break; + + case VALETON_PARAM_NR_PARAM_3: + { + lv_slider_set_value(objects.ui_val_nr_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_nr_param3_value, value_string); + } break; + + case VALETON_PARAM_NR_PARAM_4: + { + lv_slider_set_value(objects.ui_val_nr_param4_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_nr_param4_value, value_string); + } break; + + case VALETON_PARAM_NR_PARAM_5: // fallthrough + case VALETON_PARAM_NR_PARAM_6: // fallthrough + case VALETON_PARAM_NR_PARAM_7: + { + // not used + } break; case VALETON_PARAM_PRE_ENABLE: { if (param_entry->Value) { lv_img_set_src(objects.ui_icon_val_pre, (lv_obj_t*)&img_pre_on); + lv_obj_add_state(objects.ui_val_pre_block_switch, LV_STATE_CHECKED); } else { lv_img_set_src(objects.ui_icon_val_pre, (lv_obj_t*)&img_pre_off); + lv_obj_clear_state(objects.ui_val_pre_block_switch, LV_STATE_CHECKED); } } break; - //VALETON_PARAM_PRE_TYPE, - // VALETON_PARAM_PRE_PARAM_0, - // VALETON_PARAM_PRE_PARAM_1, - // VALETON_PARAM_PRE_PARAM_2, - // VALETON_PARAM_PRE_PARAM_3, - // VALETON_PARAM_PRE_PARAM_4, - // VALETON_PARAM_PRE_PARAM_5, + case VALETON_PARAM_PRE_TYPE: + { + lv_dropdown_set_selected(objects.ui_val_pre_model_dropdown, (int)param_entry->Value); + + switch ((int)param_entry->Value) + { + case VALETON_EFFECT_PRE_COMP: + { + lv_obj_clear_flag(objects.ui_val_pre_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param0_label, "Sustain"); + lv_slider_set_range(objects.ui_val_pre_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_pre_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param1_label, "Volume"); + lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); + + lv_obj_add_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_pre_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_PRE_COMP4: + { + lv_obj_clear_flag(objects.ui_val_pre_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param0_label, "Sustain"); + lv_slider_set_range(objects.ui_val_pre_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_pre_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param1_label, "Attack"); + lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param1_label, "Volume"); + lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param1_label, "Clip"); + lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); + + lv_obj_add_flag(objects.ui_val_pre_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_PRE_BOOST: + { + lv_obj_clear_flag(objects.ui_val_pre_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param0_label, "Gain"); + lv_slider_set_range(objects.ui_val_pre_param0_slider, 0, 100); + + //todo 2 switches here + + lv_obj_add_flag(objects.ui_val_pre_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param1_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_pre_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_PRE_MICRO_BOOST: + { + lv_obj_clear_flag(objects.ui_val_pre_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param0_label, "Gain"); + lv_slider_set_range(objects.ui_val_pre_param0_slider, 0, 100); + + lv_obj_add_flag(objects.ui_val_pre_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param1_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_pre_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_PRE_B_BOOST: + { + lv_obj_clear_flag(objects.ui_val_pre_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param0_label, "Gain"); + lv_slider_set_range(objects.ui_val_pre_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_pre_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param1_label, "Volume"); + lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param1_label, "Bass"); + lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param1_label, "Treble"); + lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); + + lv_obj_add_flag(objects.ui_val_pre_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_PRE_TOUCHER: + { + lv_obj_clear_flag(objects.ui_val_pre_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param0_label, "Sense"); + lv_slider_set_range(objects.ui_val_pre_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_pre_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param1_label, "Range"); + lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param1_label, "Q"); + lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param1_label, "Mix"); + lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); + + // todo switch here + + lv_obj_add_flag(objects.ui_val_pre_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_PRE_CRIER: + { + lv_obj_clear_flag(objects.ui_val_pre_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param0_label, "Depth"); + lv_slider_set_range(objects.ui_val_pre_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_pre_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param1_label, "Rate"); + lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 10); + + lv_obj_clear_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param1_label, "Volume"); + lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param1_label, "Low"); + lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_pre_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param1_label, "Q"); + lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); + + //todo one more slider + } break; + + case VALETON_EFFECT_PRE_OCTA: + { + lv_obj_clear_flag(objects.ui_val_pre_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param0_label, "Low"); + lv_slider_set_range(objects.ui_val_pre_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_pre_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param1_label, "High"); + lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param2_label, "Dry"); + lv_slider_set_range(objects.ui_val_pre_param2_slider, 0, 100); + + lv_obj_add_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_pre_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_PRE_PITCH: + { + lv_obj_clear_flag(objects.ui_val_pre_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param0_label, "High"); + lv_slider_set_range(objects.ui_val_pre_param0_slider, 0, 24); + + lv_obj_clear_flag(objects.ui_val_pre_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param1_label, "Low"); + lv_slider_set_range(objects.ui_val_pre_param1_slider, -24, 0); + + lv_obj_clear_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param2_label, "Dry"); + lv_slider_set_range(objects.ui_val_pre_param2_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param3_label, "H-Vol"); + lv_slider_set_range(objects.ui_val_pre_param3_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_pre_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param4_label, "L-Vol"); + lv_slider_set_range(objects.ui_val_pre_param4_slider, 0, 100); + } break; + + case VALETON_EFFECT_PRE_DETUNE: + { + lv_obj_clear_flag(objects.ui_val_pre_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param0_label, "Detune"); + lv_slider_set_range(objects.ui_val_pre_param0_slider, -50, 50); + + lv_obj_clear_flag(objects.ui_val_pre_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param1_label, "Wet"); + lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_pre_param2_label, "Dry"); + lv_slider_set_range(objects.ui_val_pre_param2_slider, 0, 100); + + lv_obj_add_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_pre_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_pre_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + } + } break; + + case VALETON_PARAM_PRE_PARAM_0: + { + lv_slider_set_value(objects.ui_val_pre_param0_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_pre_param0_value, value_string); + } break; + + case VALETON_PARAM_PRE_PARAM_1: + { + lv_slider_set_value(objects.ui_val_pre_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_pre_param1_value, value_string); + } break; + + case VALETON_PARAM_PRE_PARAM_2: + { + lv_slider_set_value(objects.ui_val_pre_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_pre_param2_value, value_string); + } break; + + case VALETON_PARAM_PRE_PARAM_3: + { + lv_slider_set_value(objects.ui_val_pre_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_pre_param3_value, value_string); + } break; + + case VALETON_PARAM_PRE_PARAM_4: + { + lv_slider_set_value(objects.ui_val_pre_param4_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_pre_param4_value, value_string); + } break; + + case VALETON_PARAM_PRE_PARAM_5: + { + // not used + } break; case VALETON_PARAM_DIST_ENABLE: { if (param_entry->Value) { lv_img_set_src(objects.ui_icon_val_dst, (lv_obj_t*)&img_dst_on); + lv_obj_add_state(objects.ui_val_dst_block_switch, LV_STATE_CHECKED); } else { lv_img_set_src(objects.ui_icon_val_dst, (lv_obj_t*)&img_dst_off); + lv_obj_clear_state(objects.ui_val_dst_block_switch, LV_STATE_CHECKED); + } + } break; + + case VALETON_PARAM_DIST_TYPE: + { + lv_dropdown_set_selected(objects.ui_val_dst_model_dropdown, (int)param_entry->Value); + + switch ((int)param_entry->Value) + { + case VALETON_EFFECT_DIST_GREEN_OD: + { + + } break; + + case VALETON_EFFECT_DIST_YELLOW_OD: + { + + } break; + + case VALETON_EFFECT_DIST_SUPER_OD: + { + + } break; + + case VALETON_EFFECT_DIST_SM_DIST: + { + + } break; + + case VALETON_EFFECT_DIST_PLUSTORTION: + { + + } break; + + case VALETON_EFFECT_DIST_LA_CHARGER: + { + + } break; + + case VALETON_EFFECT_DIST_DARKTALE: + { + + } break; + + case VALETON_EFFECT_DIST_SORA_FUZZ: + { + + } break; + + case VALETON_EFFECT_DIST_RED_HAZE: + { + + } break; + + case VALETON_EFFECT_DIST_BASS_OD: + { + + } break; } } break; + + case VALETON_PARAM_DIST_PARAM_0: + { + lv_slider_set_value(objects.ui_val_dst_param0_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_dst_param0_value, value_string); + } break; + + case VALETON_PARAM_DIST_PARAM_1: + { + lv_slider_set_value(objects.ui_val_dst_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_dst_param1_value, value_string); + } break; + + case VALETON_PARAM_DIST_PARAM_2: + { + lv_slider_set_value(objects.ui_val_dst_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_dst_param2_value, value_string); + } break; + + case VALETON_PARAM_DIST_PARAM_3: + { + lv_slider_set_value(objects.ui_val_dst_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_dst_param3_value, value_string); + } break; - //VALETON_PARAM_DIST_TYPE, - // VALETON_PARAM_DIST_PARAM_0, - // VALETON_PARAM_DIST_PARAM_1, - // VALETON_PARAM_DIST_PARAM_2, - // VALETON_PARAM_DIST_PARAM_3, - // VALETON_PARAM_DIST_PARAM_4, + case VALETON_PARAM_DIST_PARAM_4: + { + lv_slider_set_value(objects.ui_val_dst_param4_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_dst_param4_value, value_string); + } break; + + case VALETON_PARAM_DIST_PARAM_5: // fallthrough + case VALETON_PARAM_DIST_PARAM_6: // fallthrough + case VALETON_PARAM_DIST_PARAM_7: + { + // not used + } break; case VALETON_PARAM_AMP_ENABLE: { if (param_entry->Value) { lv_img_set_src(objects.ui_icon_val_amp, (lv_obj_t*)&img_amp_on); + lv_obj_add_state(objects.ui_val_amp_block_switch, LV_STATE_CHECKED); } else { lv_img_set_src(objects.ui_icon_val_amp, (lv_obj_t*)&img_amp_off); + lv_obj_clear_state(objects.ui_val_amp_block_switch, LV_STATE_CHECKED); + } + } break; + + case VALETON_PARAM_AMP_TYPE: + { + lv_dropdown_set_selected(objects.ui_val_amp_model_dropdown, (int)param_entry->Value); + + switch ((int)param_entry->Value) + { + case VALETON_EFFECT_AMP_TWEEDY: + { + + } break; + + // VALETON_EFFECT_AMP_BELLMAN_59N, + // VALETON_EFFECT_AMP_DARK_TWIN, + // VALETON_EFFECT_AMP_FOXY_30N, + // VALETON_EFFECT_AMP_J_120_CL, + // VALETON_EFFECT_AMP_MATCH_CL, + // VALETON_EFFECT_AMP_L_STAR_CL, + // VALETON_EFFECT_AMP_UK_45, + // VALETON_EFFECT_AMP_UK_50JP, + // VALETON_EFFECT_AMP_UK_800, + // VALETON_EFFECT_AMP_BELLMAN_59B, + // VALETON_EFFECT_AMP_FOXY_30TB, + // VALETON_EFFECT_AMP_SUPDUAL_OD, + // VALETON_EFFECT_AMP_SOLO100_OD, + // VALETON_EFFECT_AMP_Z38_OD, + // VALETON_EFFECT_AMP_BAD_KT_OD, + // VALETON_EFFECT_AMP_JUICEW_R100, + // VALETON_EFFECT_AMP_DIZZ_VH, + // VALETON_EFFECT_AMP_DIZZ_VH_PLUS, + // VALETON_EFFECT_AMP_EAGLE_120, + // VALETON_EFFECT_AMP_EV_51, + // VALETON_EFFECT_AMP_SOLO100_LD, + // VALETON_EFFECT_AMP_MESS_DUALV, + // VALETON_EFFECT_AMP_MESS_DUALM, + // VALETON_EFFECT_AMP_POWER_LD, + // VALETON_EFFECT_AMP_FLAGMAN_PLUS, + // VALETON_EFFECT_AMP_BOG_REDV, + // VALETON_EFFECT_AMP_CLASSIC_BASS, + // VALETON_EFFECT_AMP_FOXY_BASS, + // VALETON_EFFECT_AMP_MESS_BASS, + // VALETON_EFFECT_AMP_AC_PRE1, + // VALETON_EFFECT_AMP_AC_PRE2 } } break; - //VALETON_PARAM_AMP_TYPE, - // VALETON_PARAM_AMP_PARAM_0, - // VALETON_PARAM_AMP_PARAM_1, - // VALETON_PARAM_AMP_PARAM_2, - // VALETON_PARAM_AMP_PARAM_3, - // VALETON_PARAM_AMP_PARAM_4, - // VALETON_PARAM_AMP_PARAM_5, - // VALETON_PARAM_AMP_PARAM_6, + case VALETON_PARAM_AMP_PARAM_0: + { + lv_slider_set_value(objects.ui_val_amp_param0_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_amp_param0_value, value_string); + } break; + + case VALETON_PARAM_AMP_PARAM_1: + { + lv_slider_set_value(objects.ui_val_amp_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_amp_param1_value, value_string); + } break; + + case VALETON_PARAM_AMP_PARAM_2: + { + lv_slider_set_value(objects.ui_val_amp_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_amp_param2_value, value_string); + } break; + + case VALETON_PARAM_AMP_PARAM_3: + { + lv_slider_set_value(objects.ui_val_amp_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_amp_param3_value, value_string); + } break; + + case VALETON_PARAM_AMP_PARAM_4: + { + lv_slider_set_value(objects.ui_val_amp_param4_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_amp_param4_value, value_string); + } break; + + case VALETON_PARAM_AMP_PARAM_5: // fallthrough + case VALETON_PARAM_AMP_PARAM_6: // fallthrough + case VALETON_PARAM_AMP_PARAM_7: + { + // not used + } break; case VALETON_PARAM_CAB_ENABLE: { if (param_entry->Value) { lv_img_set_src(objects.ui_icon_val_cab, (lv_obj_t*)&img_cab_on); + lv_obj_add_state(objects.ui_val_cab_block_switch, LV_STATE_CHECKED); } else { lv_img_set_src(objects.ui_icon_val_cab, (lv_obj_t*)&img_cab_off); + lv_obj_clear_state(objects.ui_val_cab_block_switch, LV_STATE_CHECKED); } } break; - //VALETON_PARAM_CAB_TYPE, - //VALETON_PARAM_CAB_PARAM_0, + case VALETON_PARAM_CAB_TYPE: + { + lv_dropdown_set_selected(objects.ui_val_cab_model_dropdown, (int)param_entry->Value); + + switch ((int)param_entry->Value) + { + case VALETON_EFFECT_CAB_TWD_CP: + { + + } break; + + // VALETON_EFFECT_CAB_DARK_VIT, + // VALETON_EFFECT_CAB_FOXY_1X12, + // VALETON_EFFECT_CAB_L_STAR_1X12, + // VALETON_EFFECT_CAB_DARK_CS_2X12, + // VALETON_EFFECT_CAB_DARK_TWIN_2X12, + // VALETON_EFFECT_CAB_SUP_STAR_2X12, + // VALETON_EFFECT_CAB_J_120_2X12, + // VALETON_EFFECT_CAB_FOXY_2X12, + // VALETON_EFFECT_CAB_UK_GRN_2X12, + // VALETON_EFFECT_CAB_UK_GRN_4X12, + // VALETON_EFFECT_CAB_BOG_4X12, + // VALETON_EFFECT_CAB_DIZZ_4X12, + // VALETON_EFFECT_CAB_EV_4X12, + // VALETON_EFFECT_CAB_SOLO_4X12, + // VALETON_EFFECT_CAB_MESS_4X12, + // VALETON_EFFECT_CAB_EAGLE_4X12, + // VALETON_EFFECT_CAB_JUICE_4X12, + // VALETON_EFFECT_CAB_BELLMAN_2X12, + // VALETON_EFFECT_CAB_AMPG_4X10 + } + } break; + + case VALETON_PARAM_CAB_PARAM_0: + { + lv_slider_set_value(objects.ui_val_cab_param0_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_cab_param0_value, value_string); + } break; + + case VALETON_PARAM_CAB_PARAM_1: + { + lv_slider_set_value(objects.ui_val_cab_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_cab_param1_value, value_string); + } break; + + case VALETON_PARAM_CAB_PARAM_2: + { + lv_slider_set_value(objects.ui_val_cab_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_cab_param2_value, value_string); + } break; + + case VALETON_PARAM_CAB_PARAM_3: + { + lv_slider_set_value(objects.ui_val_cab_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_cab_param3_value, value_string); + } break; + + case VALETON_PARAM_CAB_PARAM_4: + { + lv_slider_set_value(objects.ui_val_cab_param4_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_cab_param4_value, value_string); + } break; + + case VALETON_PARAM_CAB_PARAM_5: // fallthrough + case VALETON_PARAM_CAB_PARAM_6: // fallthrough + case VALETON_PARAM_CAB_PARAM_7: + { + // not used + } break; case VALETON_PARAM_EQ_ENABLE: { if (param_entry->Value) { lv_img_set_src(objects.ui_icon_val_eq, (lv_obj_t*)&img_eq_on); + lv_obj_add_state(objects.ui_val_eq_block_switch, LV_STATE_CHECKED); } else { lv_img_set_src(objects.ui_icon_val_eq, (lv_obj_t*)&img_eq_off); + lv_obj_clear_state(objects.ui_val_eq_block_switch, LV_STATE_CHECKED); + } + } break; + + case VALETON_PARAM_EQ_TYPE: + { + lv_dropdown_set_selected(objects.ui_val_eq_model_dropdown, (int)param_entry->Value); + + switch ((int)param_entry->Value) + { + case VALETON_EFFECT_EQ_GUITAR_EQ1: + { + + } break; + + case VALETON_EFFECT_EQ_GUITAR_EQ2: + { + + } break; + + case VALETON_EFFECT_EQ_BASS_EQ1: + { + + } break; + + case VALETON_EFFECT_EQ_BASS_EQ2: + { + + } break; + + case VALETON_EFFECT_EQ_MESS_EQ: + { + + } break; } } break; - // VALETON_PARAM_EQ_TYPE - // VALETON_PARAM_EQ_PARAM_0, - // VALETON_PARAM_EQ_PARAM_1, - // VALETON_PARAM_EQ_PARAM_2, - // VALETON_PARAM_EQ_PARAM_3, - // VALETON_PARAM_EQ_PARAM_4, - // VALETON_PARAM_EQ_PARAM_5, + case VALETON_PARAM_EQ_PARAM_0: + { + lv_slider_set_value(objects.ui_val_eq_param0_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_eq_param0_value, value_string); + } break; + + case VALETON_PARAM_EQ_PARAM_1: + { + lv_slider_set_value(objects.ui_val_eq_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_eq_param1_value, value_string); + } break; + + case VALETON_PARAM_EQ_PARAM_2: + { + lv_slider_set_value(objects.ui_val_eq_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_eq_param2_value, value_string); + } break; + + case VALETON_PARAM_EQ_PARAM_3: + { + lv_slider_set_value(objects.ui_val_eq_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_eq_param3_value, value_string); + } break; + + case VALETON_PARAM_EQ_PARAM_4: + { + lv_slider_set_value(objects.ui_val_eq_param4_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_eq_param4_value, value_string); + } break; + + case VALETON_PARAM_EQ_PARAM_5: // fallthrough + case VALETON_PARAM_EQ_PARAM_6: // fallthrough + case VALETON_PARAM_EQ_PARAM_7: + { + // not used + } break; case VALETON_PARAM_MOD_ENABLE: { if (param_entry->Value) { lv_img_set_src(objects.ui_icon_val_mod, (lv_obj_t*)&img_mod_on); + lv_obj_add_state(objects.ui_val_mod_block_switch, LV_STATE_CHECKED); } else { lv_img_set_src(objects.ui_icon_val_mod, (lv_obj_t*)&img_mod_off); + lv_obj_clear_state(objects.ui_val_mod_block_switch, LV_STATE_CHECKED); } } break; - // VALETON_PARAM_MOD_TYPE, - // VALETON_PARAM_MOD_PARAM_0, - // VALETON_PARAM_MOD_PARAM_1, - // VALETON_PARAM_MOD_PARAM_2, - // VALETON_PARAM_MOD_PARAM_3, + case VALETON_PARAM_MOD_TYPE: + { + lv_dropdown_set_selected(objects.ui_val_mod_model_dropdown, (int)param_entry->Value); + + switch ((int)param_entry->Value) + { + case VALETON_EFFECT_MOD_A_CHORUS: + { + + } break; + + // VALETON_EFFECT_MOD_B_CHORUS, + // VALETON_EFFECT_MOD_JET, + // VALETON_EFFECT_MOD_N_JET, + // VALETON_EFFECT_MOD_O_PHASE, + // VALETON_EFFECT_MOD_M_VIBE, + // VALETON_EFFECT_MOD_V_ROTO, + // VALETON_EFFECT_MOD_VIBRATO, + // VALETON_EFFECT_MOD_O_TREM, + // VALETON_EFFECT_MOD_SINE_TREM, + // VALETON_EFFECT_MOD_BIAS_TREM + } + } break; + + case VALETON_PARAM_MOD_PARAM_0: + { + lv_slider_set_value(objects.ui_val_mod_param0_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_mod_param0_value, value_string); + } break; + + case VALETON_PARAM_MOD_PARAM_1: + { + lv_slider_set_value(objects.ui_val_mod_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_mod_param1_value, value_string); + } break; + + case VALETON_PARAM_MOD_PARAM_2: + { + lv_slider_set_value(objects.ui_val_mod_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_mod_param2_value, value_string); + } break; + + case VALETON_PARAM_MOD_PARAM_3: + { + lv_slider_set_value(objects.ui_val_mod_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_mod_param3_value, value_string); + } break; + + case VALETON_PARAM_MOD_PARAM_4: + { + lv_slider_set_value(objects.ui_val_mod_param4_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_mod_param4_value, value_string); + } break; + + case VALETON_PARAM_MOD_PARAM_5: // fallthrough + case VALETON_PARAM_MOD_PARAM_6: // fallthrough + case VALETON_PARAM_MOD_PARAM_7: + { + // not used + } break; case VALETON_PARAM_DLY_ENABLE: { if (param_entry->Value) { lv_img_set_src(objects.ui_icon_val_dly, (lv_obj_t*)&img_dly_on); + lv_obj_add_state(objects.ui_val_dly_block_switch, LV_STATE_CHECKED); } else { lv_img_set_src(objects.ui_icon_val_dly, (lv_obj_t*)&img_dly_off); + lv_obj_clear_state(objects.ui_val_dly_block_switch, LV_STATE_CHECKED); } } break; - // VALETON_PARAM_DLY_TYPE, - // VALETON_PARAM_DLY_PARAM_0, - // VALETON_PARAM_DLY_PARAM_1, - // VALETON_PARAM_DLY_PARAM_2, - // VALETON_PARAM_DLY_PARAM_3, - // VALETON_PARAM_DLY_PARAM_4, - // VALETON_PARAM_DLY_PARAM_5, - // VALETON_PARAM_DLY_PARAM_6, + case VALETON_PARAM_DLY_TYPE: + { + lv_dropdown_set_selected(objects.ui_val_dly_model_dropdown, (int)param_entry->Value); + + switch ((int)param_entry->Value) + { + case VALETON_EFFECT_DLY_PURE: + { + + } break; + + // VALETON_EFFECT_DLY_ANALOG, + // VALETON_EFFECT_DLY_SLAPBACK, + // VALETON_EFFECT_DLY_SWEET_ECHO, + // VALETON_EFFECT_DLY_TAPE, + // VALETON_EFFECT_DLY_TUBE, + // VALETON_EFFECT_DLY_REV_ECHO, + // VALETON_EFFECT_DLY_RING_ECHO, + // VALETON_EFFECT_DLY_SWEEP_ECHO, + // VALETON_EFFECT_DLY_PING_PONG + } + } break; + + case VALETON_PARAM_DLY_PARAM_0: + { + lv_slider_set_value(objects.ui_val_dly_param0_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_dly_param0_value, value_string); + } break; + + case VALETON_PARAM_DLY_PARAM_1: + { + lv_slider_set_value(objects.ui_val_dly_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_dly_param1_value, value_string); + } break; + + case VALETON_PARAM_DLY_PARAM_2: + { + lv_slider_set_value(objects.ui_val_dly_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_dly_param2_value, value_string); + } break; + + case VALETON_PARAM_DLY_PARAM_3: + { + lv_slider_set_value(objects.ui_val_dly_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_dly_param3_value, value_string); + } break; + + case VALETON_PARAM_DLY_PARAM_4: + { + lv_slider_set_value(objects.ui_val_dly_param4_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_dly_param4_value, value_string); + } break; + + case VALETON_PARAM_DLY_PARAM_5: // fallthrough + case VALETON_PARAM_DLY_PARAM_6: // fallthrough + case VALETON_PARAM_DLY_PARAM_7: + { + // not used + } break; case VALETON_PARAM_RVB_ENABLE: { if (param_entry->Value) { lv_img_set_src(objects.ui_icon_val_rvb, (lv_obj_t*)&img_rvb_on); + lv_obj_add_state(objects.ui_val_rvb_block_switch, LV_STATE_CHECKED); } else { lv_img_set_src(objects.ui_icon_val_rvb, (lv_obj_t*)&img_rvb_off); + lv_obj_clear_state(objects.ui_val_rvb_block_switch, LV_STATE_CHECKED); + } + } break; + + case VALETON_PARAM_RVB_TYPE: + { + lv_dropdown_set_selected(objects.ui_val_rvb_model_dropdown, (int)param_entry->Value); + + switch ((int)param_entry->Value) + { + case VALETON_EFFECT_RVB_AIR: + { + + } break; + + // VALETON_EFFECT_RVB_ROOM, + // VALETON_EFFECT_RVB_HALL, + // VALETON_EFFECT_RVB_CHURCH, + // VALETON_EFFECT_RVB_PLATE_L, + // VALETON_EFFECT_RVB_PLATE, + // VALETON_EFFECT_RVB_SPRING, + // VALETON_EFFECT_RVB_N_STAR, + // VALETON_EFFECT_RVB_DEEPSEA, + // VALETON_EFFECT_RVB_SWEET_SPACE } } break; - // VALETON_PARAM_RVB_TYPE, - // VALETON_PARAM_RVB_PARAM_0, - // VALETON_PARAM_RVB_PARAM_1, - // VALETON_PARAM_RVB_PARAM_2, - // VALETON_PARAM_RVB_PARAM_3, - // VALETON_PARAM_RVB_PARAM_4, + case VALETON_PARAM_RVB_PARAM_0: + { + lv_slider_set_value(objects.ui_val_rvb_param0_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_rvb_param0_value, value_string); + } break; + + case VALETON_PARAM_RVB_PARAM_1: + { + lv_slider_set_value(objects.ui_val_rvb_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_rvb_param1_value, value_string); + } break; + + case VALETON_PARAM_RVB_PARAM_2: + { + lv_slider_set_value(objects.ui_val_rvb_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_rvb_param2_value, value_string); + } break; + + case VALETON_PARAM_RVB_PARAM_3: + { + lv_slider_set_value(objects.ui_val_rvb_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_rvb_param3_value, value_string); + } break; + + case VALETON_PARAM_RVB_PARAM_4: + { + lv_slider_set_value(objects.ui_val_rvb_param4_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_rvb_param4_value, value_string); + } break; + + case VALETON_PARAM_RVB_PARAM_5: // fallthrough + case VALETON_PARAM_RVB_PARAM_6: // fallthrough + case VALETON_PARAM_RVB_PARAM_7: + { + // not used + } break; case VALETON_PARAM_NS_ENABLE: { if (param_entry->Value) { lv_img_set_src(objects.ui_icon_val_tc, (lv_obj_t*)&img_tc_on); + lv_obj_add_state(objects.ui_val_ns_block_switch, LV_STATE_CHECKED); } else { lv_img_set_src(objects.ui_icon_val_tc, (lv_obj_t*)&img_tc_off); + lv_obj_clear_state(objects.ui_val_ns_block_switch, LV_STATE_CHECKED); } } break; - //VALETON_PARAM_NS_TYPE, - // VALETON_PARAM_NS_PARAM_0, - // VALETON_PARAM_NS_PARAM_1, - // VALETON_PARAM_NS_PARAM_2, - // VALETON_PARAM_NS_PARAM_3, - // VALETON_PARAM_NS_PARAM_4, + case VALETON_PARAM_NS_TYPE: + { + lv_dropdown_set_selected(objects.ui_val_ns_model_dropdown, (int)param_entry->Value); + + //switch ((int)param_entry->Value) + //{ + // todo + //} + } break; + + case VALETON_PARAM_NS_PARAM_0: + { + lv_slider_set_value(objects.ui_val_ns_param0_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_ns_param0_value, value_string); + } break; + + case VALETON_PARAM_NS_PARAM_1: + { + lv_slider_set_value(objects.ui_val_ns_param1_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_ns_param1_value, value_string); + } break; + + case VALETON_PARAM_NS_PARAM_2: + { + lv_slider_set_value(objects.ui_val_ns_param2_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_ns_param2_value, value_string); + } break; + + case VALETON_PARAM_NS_PARAM_3: + { + lv_slider_set_value(objects.ui_val_ns_param3_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_ns_param3_value, value_string); + } break; + + case VALETON_PARAM_NS_PARAM_4: + { + lv_slider_set_value(objects.ui_val_ns_param4_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_ns_param4_value, value_string); + } break; + + case VALETON_PARAM_NS_PARAM_5: // fallthrough + case VALETON_PARAM_NS_PARAM_6: // fallthrough + case VALETON_PARAM_NS_PARAM_7: // fallthrough + case VALETON_PARAM_NS_PARAM_8: // fallthrough + case VALETON_PARAM_NS_PARAM_9: // fallthrough + case VALETON_PARAM_NS_PARAM_10: + { + // not used + } break; } valeton_params_release_locked_access(); diff --git a/source/main/ui_generated_800x480land/screens.c b/source/main/ui_generated_800x480land/screens.c index 05e77e10..f00838f1 100644 --- a/source/main/ui_generated_800x480land/screens.c +++ b/source/main/ui_generated_800x480land/screens.c @@ -3065,7 +3065,7 @@ void create_screen_val_settings() { objects.ui_val_dst_model_dropdown = obj; lv_obj_set_pos(obj, 482, 8); lv_obj_set_size(obj, 280, LV_SIZE_CONTENT); - lv_dropdown_set_options(obj, "Comp\nComp4\nBoost\nMicro Boost\nB-Boost\nToucher\nCrier\nOcta\nPitch\nDetune"); + lv_dropdown_set_options(obj, "Green OD\nYellow OD\nSuper OD\nSM Dist\nPlustortion\nLa Charger\nDarktale\nSora Fuzz\nRed Haze\nBass OD"); lv_dropdown_set_selected(obj, 0); lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); @@ -3172,9 +3172,9 @@ void create_screen_val_settings() { lv_label_set_text(obj, "Param2"); } { - // ui_ValDsteParam2Slider + // ui_ValDstParam2Slider lv_obj_t *obj = lv_slider_create(parent_obj); - objects.ui_val_dste_param2_slider = obj; + objects.ui_val_dst_param2_slider = obj; lv_obj_set_pos(obj, 168, 21); lv_obj_set_size(obj, 511, 20); lv_slider_set_range(obj, -100, -20); diff --git a/source/main/ui_generated_800x480land/screens.h b/source/main/ui_generated_800x480land/screens.h index 638dc661..b2605ade 100644 --- a/source/main/ui_generated_800x480land/screens.h +++ b/source/main/ui_generated_800x480land/screens.h @@ -260,7 +260,7 @@ typedef struct _objects_t { lv_obj_t *ui_val_dst_param1_slider; lv_obj_t *ui_val_dst_param1_value; lv_obj_t *ui_val_dst_param2_label; - lv_obj_t *ui_val_dste_param2_slider; + lv_obj_t *ui_val_dst_param2_slider; lv_obj_t *ui_val_dst_param2_value; lv_obj_t *ui_val_dst_param3_label; lv_obj_t *ui_val_dst_param3_slider; diff --git a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project index 113fa83b..33df0ee8 100644 --- a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project +++ b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project @@ -14695,7 +14695,7 @@ }, "group": "", "groupIndex": 0, - "options": "Comp\nComp4\nBoost\nMicro Boost\nB-Boost\nToucher\nCrier\nOcta\nPitch\nDetune", + "options": "Green OD\nYellow OD\nSuper OD\nSM Dist\nPlustortion\nLa Charger\nDarktale\nSora Fuzz\nRed Haze\nBass OD", "optionsType": "literal", "selected": 0, "selectedType": "literal", @@ -15143,7 +15143,7 @@ "userData": 0 } ], - "identifier": "ui_ValDsteParam2Slider", + "identifier": "ui_ValDstParam2Slider", "leftUnit": "px", "topUnit": "px", "widthUnit": "px", diff --git a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state index 3266a82f..8c709b88 100644 --- a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state +++ b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state @@ -1,6 +1,6 @@ { "navigation": { - "selectedUserPageObject": "[Tonex_Controller_800_480land.eez-project]:/userPages/0", + "selectedUserPageObject": "[Tonex_Controller_800_480land.eez-project]:/userPages/2", "subnavigationSelectedItems": {} }, "layoutModel": { @@ -165,7 +165,8 @@ "enableClose": false, "icon": "svg:hierarchy" } - ] + ], + "active": true }, { "type": "tabset", @@ -195,16 +196,15 @@ { "type": "tab", "id": "#76314634-65e1-4225-b990-af9c26f38d4f", - "name": "Screen1", + "name": "ValSettings", "component": "editor", "config": { - "objectPath": "[Tonex_Controller_800_480land.eez-project]:/userPages/0", + "objectPath": "[Tonex_Controller_800_480land.eez-project]:/userPages/2", "permanent": false }, "icon": "svg:page" } - ], - "active": true + ] }, { "type": "row", @@ -1018,7 +1018,7 @@ "selection": { "0": { "0": { - "1": { + "0": { "$selected": true } } @@ -1027,7 +1027,7 @@ "transform": { "translate": { "x": -400, - "y": -240 + "y": -140 }, "scale": 1 }, From 4181c83a2e685ec7254394f587297c0649f608eb Mon Sep 17 00:00:00 2001 From: Greg Smith Date: Mon, 10 Nov 2025 09:30:49 +1100 Subject: [PATCH 05/34] More work on GP5 parameter interface --- source/main/display_valeton.c | 719 ++++++++++++++++++++++++++++++---- source/main/usb_valeton_gp5.c | 2 +- source/main/valeton_params.h | 2 +- 3 files changed, 634 insertions(+), 89 deletions(-) diff --git a/source/main/display_valeton.c b/source/main/display_valeton.c index 4b482e61..f471e24b 100644 --- a/source/main/display_valeton.c +++ b/source/main/display_valeton.c @@ -883,54 +883,154 @@ uint8_t valeton_update_ui_parameters(void) switch ((int)param_entry->Value) { - case VALETON_EFFECT_DIST_GREEN_OD: - { - - } break; - - case VALETON_EFFECT_DIST_YELLOW_OD: - { - - } break; - - case VALETON_EFFECT_DIST_SUPER_OD: - { - - } break; - - case VALETON_EFFECT_DIST_SM_DIST: + case VALETON_EFFECT_DIST_GREEN_OD: // fallthrough + case VALETON_EFFECT_DIST_SUPER_OD: // fallthrough + case VALETON_EFFECT_DIST_SM_DIST: // fallthrough + case VALETON_EFFECT_DIST_LA_CHARGER: { - + lv_obj_clear_flag(objects.ui_val_dst_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param0_label, "Gain"); + lv_slider_set_range(objects.ui_val_dst_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_dst_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param1_label, "Tone"); + lv_slider_set_range(objects.ui_val_dst_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_dst_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param2_label, "Volume"); + lv_slider_set_range(objects.ui_val_dst_param2_slider, 0, 100); + + lv_obj_add_flag(objects.ui_val_dst_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_dst_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param4_value, LV_OBJ_FLAG_HIDDEN); } break; + case VALETON_EFFECT_DIST_YELLOW_OD: // fallthrough case VALETON_EFFECT_DIST_PLUSTORTION: { + lv_obj_clear_flag(objects.ui_val_dst_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param0_label, "Gain"); + lv_slider_set_range(objects.ui_val_dst_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_dst_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param1_label, "Volume"); + lv_slider_set_range(objects.ui_val_dst_param1_slider, 0, 100); + + lv_obj_add_flag(objects.ui_val_dst_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param2_value, LV_OBJ_FLAG_HIDDEN); - } break; - - case VALETON_EFFECT_DIST_LA_CHARGER: - { + lv_obj_add_flag(objects.ui_val_dst_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param4_value, LV_OBJ_FLAG_HIDDEN); } break; - + case VALETON_EFFECT_DIST_DARKTALE: { - + lv_obj_clear_flag(objects.ui_val_dst_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param0_label, "Gain"); + lv_slider_set_range(objects.ui_val_dst_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_dst_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param1_label, "Filter"); + lv_slider_set_range(objects.ui_val_dst_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_dst_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param2_label, "Volume"); + lv_slider_set_range(objects.ui_val_dst_param2_slider, 0, 100); + + lv_obj_add_flag(objects.ui_val_dst_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_dst_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param4_value, LV_OBJ_FLAG_HIDDEN); } break; - case VALETON_EFFECT_DIST_SORA_FUZZ: - { - - } break; - + case VALETON_EFFECT_DIST_SORA_FUZZ: // fallthrough case VALETON_EFFECT_DIST_RED_HAZE: { + lv_obj_clear_flag(objects.ui_val_dst_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param0_label, "Fuzz"); + lv_slider_set_range(objects.ui_val_dst_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_dst_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param1_label, "Volume"); + lv_slider_set_range(objects.ui_val_dst_param1_slider, 0, 100); + + lv_obj_add_flag(objects.ui_val_dst_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_dst_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dst_param4_value, LV_OBJ_FLAG_HIDDEN); } break; case VALETON_EFFECT_DIST_BASS_OD: { - + lv_obj_clear_flag(objects.ui_val_dst_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param0_label, "Gain"); + lv_slider_set_range(objects.ui_val_dst_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_dst_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param1_label, "Blend"); + lv_slider_set_range(objects.ui_val_dst_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_dst_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param2_label, "Volume"); + lv_slider_set_range(objects.ui_val_dst_param2_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_dst_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param3_label, "Bass"); + lv_slider_set_range(objects.ui_val_dst_param3_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_dst_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dst_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dst_param4_label, "Treble"); + lv_slider_set_range(objects.ui_val_dst_param4_slider, 0, 100); } break; } } break; @@ -999,40 +1099,490 @@ uint8_t valeton_update_ui_parameters(void) { case VALETON_EFFECT_AMP_TWEEDY: { + lv_obj_clear_flag(objects.ui_val_amp_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param0_label, "Gain"); + lv_slider_set_range(objects.ui_val_amp_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param1_label, "Tone"); + lv_slider_set_range(objects.ui_val_amp_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param2_label, "Volume"); + lv_slider_set_range(objects.ui_val_amp_param2_slider, 0, 100); + + lv_obj_add_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + case VALETON_EFFECT_AMP_BELLMAN_59N: // fallthrough + case VALETON_EFFECT_AMP_MATCH_CL: // fallthrough + case VALETON_EFFECT_AMP_L_STAR_CL: // fallthrough + case VALETON_EFFECT_AMP_UK_45: // fallthough + case VALETON_EFFECT_AMP_UK_800: // fallthrough + case VALETON_EFFECT_AMP_BELLMAN_59B: // fallthough + case VALETON_EFFECT_AMP_SOLO100_OD: // fallthrough + case VALETON_EFFECT_AMP_BAD_KT_OD: // fallthough + case VALETON_EFFECT_AMP_DIZZ_VH: // fallthrough + case VALETON_EFFECT_AMP_DIZZ_VH_PLUS: // fallthrough + case VALETON_EFFECT_AMP_EAGLE_120: // fallthrough + case VALETON_EFFECT_AMP_SOLO100_LD: // fallthrough + case VALETON_EFFECT_AMP_MESS_DUALV: // fallthrough + case VALETON_EFFECT_AMP_MESS_DUALM: // fallthrough + case VALETON_EFFECT_AMP_POWER_LD: // fallthrough + case VALETON_EFFECT_AMP_FLAGMAN_PLUS: // fallthrough + case VALETON_EFFECT_AMP_BOG_REDV: + { + lv_obj_clear_flag(objects.ui_val_amp_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param0_label, "Gain"); + lv_slider_set_range(objects.ui_val_amp_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param1_label, "Presence"); + lv_slider_set_range(objects.ui_val_amp_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param2_label, "Volume"); + lv_slider_set_range(objects.ui_val_amp_param2_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param3_label, "Bass"); + lv_slider_set_range(objects.ui_val_amp_param3_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param4_label, "Middle"); + lv_slider_set_range(objects.ui_val_amp_param4_slider, 0, 100); + + // todo Treble } break; - // VALETON_EFFECT_AMP_BELLMAN_59N, - // VALETON_EFFECT_AMP_DARK_TWIN, - // VALETON_EFFECT_AMP_FOXY_30N, - // VALETON_EFFECT_AMP_J_120_CL, - // VALETON_EFFECT_AMP_MATCH_CL, - // VALETON_EFFECT_AMP_L_STAR_CL, - // VALETON_EFFECT_AMP_UK_45, - // VALETON_EFFECT_AMP_UK_50JP, - // VALETON_EFFECT_AMP_UK_800, - // VALETON_EFFECT_AMP_BELLMAN_59B, - // VALETON_EFFECT_AMP_FOXY_30TB, - // VALETON_EFFECT_AMP_SUPDUAL_OD, - // VALETON_EFFECT_AMP_SOLO100_OD, - // VALETON_EFFECT_AMP_Z38_OD, - // VALETON_EFFECT_AMP_BAD_KT_OD, - // VALETON_EFFECT_AMP_JUICEW_R100, - // VALETON_EFFECT_AMP_DIZZ_VH, - // VALETON_EFFECT_AMP_DIZZ_VH_PLUS, - // VALETON_EFFECT_AMP_EAGLE_120, - // VALETON_EFFECT_AMP_EV_51, - // VALETON_EFFECT_AMP_SOLO100_LD, - // VALETON_EFFECT_AMP_MESS_DUALV, - // VALETON_EFFECT_AMP_MESS_DUALM, - // VALETON_EFFECT_AMP_POWER_LD, - // VALETON_EFFECT_AMP_FLAGMAN_PLUS, - // VALETON_EFFECT_AMP_BOG_REDV, - // VALETON_EFFECT_AMP_CLASSIC_BASS, - // VALETON_EFFECT_AMP_FOXY_BASS, - // VALETON_EFFECT_AMP_MESS_BASS, - // VALETON_EFFECT_AMP_AC_PRE1, - // VALETON_EFFECT_AMP_AC_PRE2 + case VALETON_EFFECT_AMP_DARK_TWIN: + case VALETON_EFFECT_AMP_JUICE_R100: + { + lv_obj_clear_flag(objects.ui_val_amp_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param0_label, "Gain"); + lv_slider_set_range(objects.ui_val_amp_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param1_label, "Volume"); + lv_slider_set_range(objects.ui_val_amp_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param2_label, "Bass"); + lv_slider_set_range(objects.ui_val_amp_param2_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param3_label, "Middle"); + lv_slider_set_range(objects.ui_val_amp_param3_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param4_label, "Treble"); + lv_slider_set_range(objects.ui_val_amp_param4_slider, 0, 100); + + //todo bright switch + } break; + + case VALETON_EFFECT_AMP_FOXY_30N: + { + lv_obj_clear_flag(objects.ui_val_amp_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param0_label, "Gain"); + lv_slider_set_range(objects.ui_val_amp_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param1_label, "Tone Cut"); + lv_slider_set_range(objects.ui_val_amp_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param2_label, "Volume"); + lv_slider_set_range(objects.ui_val_amp_param2_slider, 0, 100); + + lv_obj_add_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); + + //todo tone cut switch + } break; + + case VALETON_EFFECT_AMP_J_120_CL: + { + lv_obj_clear_flag(objects.ui_val_amp_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param0_label, "Volume"); + lv_slider_set_range(objects.ui_val_amp_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param1_label, "Bass"); + lv_slider_set_range(objects.ui_val_amp_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param2_label, "Middle"); + lv_slider_set_range(objects.ui_val_amp_param2_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param3_label, "Treble"); + lv_slider_set_range(objects.ui_val_amp_param3_slider, 0, 100); + + lv_obj_add_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); + + //todo bright switch + } break; + + case VALETON_EFFECT_AMP_UK_50JP: + { + lv_obj_clear_flag(objects.ui_val_amp_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param0_label, "Gain 1"); + lv_slider_set_range(objects.ui_val_amp_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param1_label, "Presence"); + lv_slider_set_range(objects.ui_val_amp_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param2_label, "Volume"); + lv_slider_set_range(objects.ui_val_amp_param2_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param3_label, "Bass"); + lv_slider_set_range(objects.ui_val_amp_param3_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param4_label, "Middle"); + lv_slider_set_range(objects.ui_val_amp_param4_slider, 0, 100); + + //todo: treble, gain 2 + } break; + + case VALETON_EFFECT_AMP_FOXY_30TB: + { + lv_obj_clear_flag(objects.ui_val_amp_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param0_label, "Gain"); + lv_slider_set_range(objects.ui_val_amp_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param1_label, "Tone Cut"); + lv_slider_set_range(objects.ui_val_amp_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param2_label, "Volume"); + lv_slider_set_range(objects.ui_val_amp_param2_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param3_label, "Bass"); + lv_slider_set_range(objects.ui_val_amp_param3_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param4_label, "Treble"); + lv_slider_set_range(objects.ui_val_amp_param4_slider, 0, 100); + + //todo: add character switch + } break; + + case VALETON_EFFECT_AMP_SUPDUAL_OD: + { + lv_obj_clear_flag(objects.ui_val_amp_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param0_label, "Gain 1"); + lv_slider_set_range(objects.ui_val_amp_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param1_label, "Tone 1"); + lv_slider_set_range(objects.ui_val_amp_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param2_label, "Gain 2"); + lv_slider_set_range(objects.ui_val_amp_param2_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param3_label, "Tone 2"); + lv_slider_set_range(objects.ui_val_amp_param3_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param4_label, "Volume"); + lv_slider_set_range(objects.ui_val_amp_param4_slider, 0, 100); + } break; + + case VALETON_EFFECT_AMP_Z38_OD: + { + lv_obj_clear_flag(objects.ui_val_amp_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param0_label, "Gain"); + lv_slider_set_range(objects.ui_val_amp_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param1_label, "Tone Cut"); + lv_slider_set_range(objects.ui_val_amp_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param2_label, "Volume"); + lv_slider_set_range(objects.ui_val_amp_param2_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param3_label, "Bass"); + lv_slider_set_range(objects.ui_val_amp_param3_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param4_label, "Middle"); + lv_slider_set_range(objects.ui_val_amp_param4_slider, 0, 100); + + //todo: treble + } break; + + case VALETON_EFFECT_AMP_EV_51: + { + lv_obj_clear_flag(objects.ui_val_amp_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param0_label, "Gain"); + lv_slider_set_range(objects.ui_val_amp_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param1_label, "Volume"); + lv_slider_set_range(objects.ui_val_amp_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param2_label, "Bass"); + lv_slider_set_range(objects.ui_val_amp_param2_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param3_label, "Mid"); + lv_slider_set_range(objects.ui_val_amp_param3_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param4_label, "Treble"); + lv_slider_set_range(objects.ui_val_amp_param4_slider, 0, 100); + + // todo presence + } break; + + case VALETON_EFFECT_AMP_CLASSIC_BASS: + { + lv_obj_clear_flag(objects.ui_val_amp_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param0_label, "Gain"); + lv_slider_set_range(objects.ui_val_amp_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param1_label, "Bass"); + lv_slider_set_range(objects.ui_val_amp_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param2_label, "Middle"); + lv_slider_set_range(objects.ui_val_amp_param2_slider, 0, 100); + + //todo: middle freq + + lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param3_label, "Treble"); + lv_slider_set_range(objects.ui_val_amp_param3_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param4_label, "Volume"); + lv_slider_set_range(objects.ui_val_amp_param4_slider, 0, 100); + } break; + + case VALETON_EFFECT_AMP_FOXY_BASS: + { + lv_obj_clear_flag(objects.ui_val_amp_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param0_label, "Volume"); + lv_slider_set_range(objects.ui_val_amp_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param1_label, "Bass"); + lv_slider_set_range(objects.ui_val_amp_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param2_label, "Treble"); + lv_slider_set_range(objects.ui_val_amp_param2_slider, 0, 100); + + lv_obj_add_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); + + } break; + + case VALETON_EFFECT_AMP_MESS_BASS: + { + lv_obj_clear_flag(objects.ui_val_amp_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param0_label, "Gain"); + lv_slider_set_range(objects.ui_val_amp_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param1_label, "Volume"); + lv_slider_set_range(objects.ui_val_amp_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param2_label, "Bass"); + lv_slider_set_range(objects.ui_val_amp_param2_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param3_label, "Mid"); + lv_slider_set_range(objects.ui_val_amp_param3_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param4_label, "Treble"); + lv_slider_set_range(objects.ui_val_amp_param4_slider, 0, 100); + } break; + + case VALETON_EFFECT_AMP_AC_PRE1: // fallthrough + case VALETON_EFFECT_AMP_AC_PRE2: + { + lv_obj_clear_flag(objects.ui_val_amp_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param0_label, "Volume"); + lv_slider_set_range(objects.ui_val_amp_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param1_label, "Tone"); + lv_slider_set_range(objects.ui_val_amp_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param2_label, "Balance"); + lv_slider_set_range(objects.ui_val_amp_param2_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param3_label, "EQ Freq"); + lv_slider_set_range(objects.ui_val_amp_param3_slider, 0, 100); + + // todo: EQ Q + + lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_amp_param4_label, "EQ Gain"); + lv_slider_set_range(objects.ui_val_amp_param4_slider, 0, 100); + } break; } } break; @@ -1096,33 +1646,28 @@ uint8_t valeton_update_ui_parameters(void) { lv_dropdown_set_selected(objects.ui_val_cab_model_dropdown, (int)param_entry->Value); - switch ((int)param_entry->Value) - { - case VALETON_EFFECT_CAB_TWD_CP: - { - - } break; - - // VALETON_EFFECT_CAB_DARK_VIT, - // VALETON_EFFECT_CAB_FOXY_1X12, - // VALETON_EFFECT_CAB_L_STAR_1X12, - // VALETON_EFFECT_CAB_DARK_CS_2X12, - // VALETON_EFFECT_CAB_DARK_TWIN_2X12, - // VALETON_EFFECT_CAB_SUP_STAR_2X12, - // VALETON_EFFECT_CAB_J_120_2X12, - // VALETON_EFFECT_CAB_FOXY_2X12, - // VALETON_EFFECT_CAB_UK_GRN_2X12, - // VALETON_EFFECT_CAB_UK_GRN_4X12, - // VALETON_EFFECT_CAB_BOG_4X12, - // VALETON_EFFECT_CAB_DIZZ_4X12, - // VALETON_EFFECT_CAB_EV_4X12, - // VALETON_EFFECT_CAB_SOLO_4X12, - // VALETON_EFFECT_CAB_MESS_4X12, - // VALETON_EFFECT_CAB_EAGLE_4X12, - // VALETON_EFFECT_CAB_JUICE_4X12, - // VALETON_EFFECT_CAB_BELLMAN_2X12, - // VALETON_EFFECT_CAB_AMPG_4X10 - } + // all cabs have volume only + lv_obj_clear_flag(objects.ui_val_cab_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_cab_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_cab_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_cab_param0_label, "Volume"); + lv_slider_set_range(objects.ui_val_cab_param0_slider, 0, 100); + + lv_obj_add_flag(objects.ui_val_cab_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_cab_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_cab_param1_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_cab_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_cab_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_cab_param2_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_cab_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_cab_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_cab_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_cab_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_cab_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_cab_param4_value, LV_OBJ_FLAG_HIDDEN); } break; case VALETON_PARAM_CAB_PARAM_0: diff --git a/source/main/usb_valeton_gp5.c b/source/main/usb_valeton_gp5.c index bdb80c64..1e296ad4 100644 --- a/source/main/usb_valeton_gp5.c +++ b/source/main/usb_valeton_gp5.c @@ -200,7 +200,7 @@ static const EffectMapEntry_t effect_map_amp[] = { { VALETON_EFFECT_AMP_SOLO100_OD, 0x47000007}, { VALETON_EFFECT_AMP_Z38_OD, 0x49000007}, { VALETON_EFFECT_AMP_BAD_KT_OD, 0x4B000007}, - { VALETON_EFFECT_AMP_JUICEW_R100, 0x53000007}, + { VALETON_EFFECT_AMP_JUICE_R100, 0x53000007}, { VALETON_EFFECT_AMP_DIZZ_VH, 0x65000007}, { VALETON_EFFECT_AMP_DIZZ_VH_PLUS, 0x6A000007}, { VALETON_EFFECT_AMP_EAGLE_120, 0x5F000007}, diff --git a/source/main/valeton_params.h b/source/main/valeton_params.h index a9729af2..c21b3f32 100644 --- a/source/main/valeton_params.h +++ b/source/main/valeton_params.h @@ -165,7 +165,7 @@ enum ValetonEffectAmp VALETON_EFFECT_AMP_SOLO100_OD, VALETON_EFFECT_AMP_Z38_OD, VALETON_EFFECT_AMP_BAD_KT_OD, - VALETON_EFFECT_AMP_JUICEW_R100, + VALETON_EFFECT_AMP_JUICE_R100, VALETON_EFFECT_AMP_DIZZ_VH, VALETON_EFFECT_AMP_DIZZ_VH_PLUS, VALETON_EFFECT_AMP_EAGLE_120, From 27e3168439d9a374a33e8e4054ff939ae90b29c8 Mon Sep 17 00:00:00 2001 From: Greg Smith Date: Mon, 10 Nov 2025 13:27:31 +1100 Subject: [PATCH 06/34] More GP5 UI work, --- source/main/display_valeton.c | 706 +++++++++++++++++- source/main/usb_valeton_gp5.c | 26 +- ...ontroller_800_480land.eez-project-ui-state | 13 +- 3 files changed, 690 insertions(+), 55 deletions(-) diff --git a/source/main/display_valeton.c b/source/main/display_valeton.c index f471e24b..105551fa 100644 --- a/source/main/display_valeton.c +++ b/source/main/display_valeton.c @@ -1734,27 +1734,175 @@ uint8_t valeton_update_ui_parameters(void) { case VALETON_EFFECT_EQ_GUITAR_EQ1: { + lv_obj_clear_flag(objects.ui_val_eq_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param0_label, "125 Hz"); + lv_slider_set_range(objects.ui_val_eq_param0_slider, -50, 50); + + lv_obj_clear_flag(objects.ui_val_eq_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param1_label, "400 Hz"); + lv_slider_set_range(objects.ui_val_eq_param1_slider, -50, 50); + + lv_obj_clear_flag(objects.ui_val_eq_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param2_label, "800 Hz"); + lv_slider_set_range(objects.ui_val_eq_param2_slider, -50, 50); + + lv_obj_clear_flag(objects.ui_val_eq_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param3_label, "1.6 kHz"); + lv_slider_set_range(objects.ui_val_eq_param3_slider, -50, 50); + + lv_obj_clear_flag(objects.ui_val_eq_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param4_label, "4 kHz"); + lv_slider_set_range(objects.ui_val_eq_param4_slider, -50, 50); + //todo Volume } break; case VALETON_EFFECT_EQ_GUITAR_EQ2: { + lv_obj_clear_flag(objects.ui_val_eq_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param0_label, "100 Hz"); + lv_slider_set_range(objects.ui_val_eq_param0_slider, -50, 50); + + lv_obj_clear_flag(objects.ui_val_eq_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param1_label, "500 Hz"); + lv_slider_set_range(objects.ui_val_eq_param1_slider, -50, 50); + + lv_obj_clear_flag(objects.ui_val_eq_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param2_label, "1 kHz"); + lv_slider_set_range(objects.ui_val_eq_param2_slider, -50, 50); + + lv_obj_clear_flag(objects.ui_val_eq_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param3_label, "3 kHz"); + lv_slider_set_range(objects.ui_val_eq_param3_slider, -50, 50); + + lv_obj_clear_flag(objects.ui_val_eq_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param4_label, "6 kHz"); + lv_slider_set_range(objects.ui_val_eq_param4_slider, -50, 50); + //todo volume } break; case VALETON_EFFECT_EQ_BASS_EQ1: { + lv_obj_clear_flag(objects.ui_val_eq_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param0_label, "33 Hz"); + lv_slider_set_range(objects.ui_val_eq_param0_slider, -50, 50); + + lv_obj_clear_flag(objects.ui_val_eq_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param1_label, "150 Hz"); + lv_slider_set_range(objects.ui_val_eq_param1_slider, -50, 50); + + lv_obj_clear_flag(objects.ui_val_eq_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param2_label, "600 Hz"); + lv_slider_set_range(objects.ui_val_eq_param2_slider, -50, 50); + + lv_obj_clear_flag(objects.ui_val_eq_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param3_label, "2 kHz"); + lv_slider_set_range(objects.ui_val_eq_param3_slider, -50, 50); + + lv_obj_clear_flag(objects.ui_val_eq_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param4_label, "8 kHz"); + lv_slider_set_range(objects.ui_val_eq_param4_slider, -50, 50); + //todo Volume } break; case VALETON_EFFECT_EQ_BASS_EQ2: { + lv_obj_clear_flag(objects.ui_val_eq_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param0_label, "50 Hz"); + lv_slider_set_range(objects.ui_val_eq_param0_slider, -50, 50); + + lv_obj_clear_flag(objects.ui_val_eq_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param1_label, "120 Hz"); + lv_slider_set_range(objects.ui_val_eq_param1_slider, -50, 50); + + lv_obj_clear_flag(objects.ui_val_eq_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param2_label, "400 Hz"); + lv_slider_set_range(objects.ui_val_eq_param2_slider, -50, 50); + + lv_obj_clear_flag(objects.ui_val_eq_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param3_label, "800 Hz"); + lv_slider_set_range(objects.ui_val_eq_param3_slider, -50, 50); + + lv_obj_clear_flag(objects.ui_val_eq_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param4_label, "4.5 kHz"); + lv_slider_set_range(objects.ui_val_eq_param4_slider, -50, 50); + //todo Volume } break; case VALETON_EFFECT_EQ_MESS_EQ: { - + lv_obj_clear_flag(objects.ui_val_eq_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param0_label, "80 Hz"); + lv_slider_set_range(objects.ui_val_eq_param0_slider, -50, 50); + + lv_obj_clear_flag(objects.ui_val_eq_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param1_label, "240 Hz"); + lv_slider_set_range(objects.ui_val_eq_param1_slider, -50, 50); + + lv_obj_clear_flag(objects.ui_val_eq_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param2_label, "750 Hz"); + lv_slider_set_range(objects.ui_val_eq_param2_slider, -50, 50); + + lv_obj_clear_flag(objects.ui_val_eq_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param3_label, "2.2 kHz"); + lv_slider_set_range(objects.ui_val_eq_param3_slider, -50, 50); + + lv_obj_clear_flag(objects.ui_val_eq_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_eq_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_eq_param4_label, "6.6 kHz"); + lv_slider_set_range(objects.ui_val_eq_param4_slider, -50, 50); } break; } } break; @@ -1821,21 +1969,182 @@ uint8_t valeton_update_ui_parameters(void) switch ((int)param_entry->Value) { - case VALETON_EFFECT_MOD_A_CHORUS: + case VALETON_EFFECT_MOD_A_CHORUS: // fallthrough + case VALETON_EFFECT_MOD_B_CHORUS: + { + lv_obj_clear_flag(objects.ui_val_mod_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param0_label, "Depth"); + lv_slider_set_range(objects.ui_val_mod_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_mod_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param1_label, "Rate"); + lv_slider_set_range(objects.ui_val_mod_param1_slider, 0, 10); + + lv_obj_clear_flag(objects.ui_val_mod_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param2_label, "Tone"); + lv_slider_set_range(objects.ui_val_mod_param2_slider, 0, 100); + + lv_obj_add_flag(objects.ui_val_mod_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_mod_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_MOD_JET: // Fallthrough + case VALETON_EFFECT_MOD_N_JET: + { + lv_obj_clear_flag(objects.ui_val_mod_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param0_label, "Depth"); + lv_slider_set_range(objects.ui_val_mod_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_mod_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param1_label, "Rate"); + lv_slider_set_range(objects.ui_val_mod_param1_slider, 0, 10); + + lv_obj_clear_flag(objects.ui_val_mod_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param2_label, "P.Delay"); + lv_slider_set_range(objects.ui_val_mod_param2_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_mod_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param3_label, "F.Back"); + lv_slider_set_range(objects.ui_val_mod_param3_slider, 0, 100); + + lv_obj_add_flag(objects.ui_val_mod_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_MOD_O_PHASE: + { + lv_obj_clear_flag(objects.ui_val_mod_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param0_label, "Rate"); + lv_slider_set_range(objects.ui_val_mod_param0_slider, 0, 10); + + lv_obj_add_flag(objects.ui_val_mod_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param1_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_mod_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param2_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_mod_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_mod_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_MOD_M_VIBE: // fallthrough + case VALETON_EFFECT_MOD_V_ROTO: // fallthrough + case VALETON_EFFECT_MOD_O_TREM: { + lv_obj_clear_flag(objects.ui_val_mod_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param0_label, "Depth"); + lv_slider_set_range(objects.ui_val_mod_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_mod_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param1_label, "Rate"); + lv_slider_set_range(objects.ui_val_mod_param1_slider, 0, 10); + + lv_obj_add_flag(objects.ui_val_mod_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param2_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_mod_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_mod_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + case VALETON_EFFECT_MOD_VIBRATO: // fallthrough + case VALETON_EFFECT_MOD_SINE_TREM: + { + lv_obj_clear_flag(objects.ui_val_mod_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param0_label, "Depth"); + lv_slider_set_range(objects.ui_val_mod_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_mod_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param1_label, "Rate"); + lv_slider_set_range(objects.ui_val_mod_param1_slider, 0, 10); + + lv_obj_clear_flag(objects.ui_val_mod_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param2_label, "Volume"); + lv_slider_set_range(objects.ui_val_mod_param2_slider, 0, 100); + + lv_obj_add_flag(objects.ui_val_mod_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_mod_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param4_value, LV_OBJ_FLAG_HIDDEN); } break; - // VALETON_EFFECT_MOD_B_CHORUS, - // VALETON_EFFECT_MOD_JET, - // VALETON_EFFECT_MOD_N_JET, - // VALETON_EFFECT_MOD_O_PHASE, - // VALETON_EFFECT_MOD_M_VIBE, - // VALETON_EFFECT_MOD_V_ROTO, - // VALETON_EFFECT_MOD_VIBRATO, - // VALETON_EFFECT_MOD_O_TREM, - // VALETON_EFFECT_MOD_SINE_TREM, - // VALETON_EFFECT_MOD_BIAS_TREM + case VALETON_EFFECT_MOD_BIAS_TREM: + { + lv_obj_clear_flag(objects.ui_val_mod_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param0_label, "Depth"); + lv_slider_set_range(objects.ui_val_mod_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_mod_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param1_label, "Rate"); + lv_slider_set_range(objects.ui_val_mod_param1_slider, 0, 10); + + lv_obj_clear_flag(objects.ui_val_mod_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param2_label, "Volume"); + lv_slider_set_range(objects.ui_val_mod_param2_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_mod_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_mod_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_mod_param3_label, "Bias"); + lv_slider_set_range(objects.ui_val_mod_param3_slider, 0, 100); + + lv_obj_add_flag(objects.ui_val_mod_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_mod_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; } } break; @@ -1901,20 +2210,234 @@ uint8_t valeton_update_ui_parameters(void) switch ((int)param_entry->Value) { - case VALETON_EFFECT_DLY_PURE: + case VALETON_EFFECT_DLY_PURE: // fallthrough + case VALETON_EFFECT_DLY_SWEET_ECHO: // fallthrough + case VALETON_EFFECT_DLY_TAPE: // fallthrough + case VALETON_EFFECT_DLY_TUBE: + { + lv_obj_clear_flag(objects.ui_val_dly_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param0_label, "Mix"); + lv_slider_set_range(objects.ui_val_dly_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_dly_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param1_label, "Time"); + lv_slider_set_range(objects.ui_val_dly_param1_slider, 0, 1000); + + lv_obj_clear_flag(objects.ui_val_dly_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param2_label, "F.Back"); + lv_slider_set_range(objects.ui_val_dly_param2_slider, 0, 100); + + // todo trail switch + + lv_obj_add_flag(objects.ui_val_dly_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_dly_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_DLY_ANALOG: + { + lv_obj_clear_flag(objects.ui_val_dly_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param0_label, "Mix"); + lv_slider_set_range(objects.ui_val_dly_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_dly_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param1_label, "Time"); + lv_slider_set_range(objects.ui_val_dly_param1_slider, 0, 4000); + + lv_obj_clear_flag(objects.ui_val_dly_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param2_label, "F.Back"); + lv_slider_set_range(objects.ui_val_dly_param2_slider, 0, 100); + + // todo trail switch + + lv_obj_add_flag(objects.ui_val_dly_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_dly_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_DLY_SLAPBACK: + { + lv_obj_clear_flag(objects.ui_val_dly_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param0_label, "Mix"); + lv_slider_set_range(objects.ui_val_dly_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_dly_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param1_label, "Time"); + lv_slider_set_range(objects.ui_val_dly_param1_slider, 0, 300); + + lv_obj_clear_flag(objects.ui_val_dly_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param2_label, "F.Back"); + lv_slider_set_range(objects.ui_val_dly_param2_slider, 0, 100); + + // todo trail switch + + lv_obj_add_flag(objects.ui_val_dly_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_dly_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_DLY_REV_ECHO: + { + lv_obj_clear_flag(objects.ui_val_dly_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param0_label, "Mix"); + lv_slider_set_range(objects.ui_val_dly_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_dly_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param1_label, "Time"); + lv_slider_set_range(objects.ui_val_dly_param1_slider, 0, 780); + + lv_obj_clear_flag(objects.ui_val_dly_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param2_label, "F.Back"); + lv_slider_set_range(objects.ui_val_dly_param2_slider, 0, 100); + + // todo trail switch + + lv_obj_add_flag(objects.ui_val_dly_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_dly_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_DLY_PING_PONG: { + lv_obj_clear_flag(objects.ui_val_dly_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param0_label, "Mix"); + lv_slider_set_range(objects.ui_val_dly_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_dly_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param1_label, "Time"); + lv_slider_set_range(objects.ui_val_dly_param1_slider, 0, 500); + + lv_obj_clear_flag(objects.ui_val_dly_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param2_label, "F.Back"); + lv_slider_set_range(objects.ui_val_dly_param2_slider, 0, 100); + + // todo trail switch + + lv_obj_add_flag(objects.ui_val_dly_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_dly_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + case VALETON_EFFECT_DLY_RING_ECHO: + { + lv_obj_clear_flag(objects.ui_val_dly_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param0_label, "Mix"); + lv_slider_set_range(objects.ui_val_dly_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_dly_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param1_label, "Time"); + lv_slider_set_range(objects.ui_val_dly_param1_slider, 0, 1000); + + lv_obj_clear_flag(objects.ui_val_dly_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param2_label, "F.Back"); + lv_slider_set_range(objects.ui_val_dly_param2_slider, 0, 100); + + lv_obj_add_flag(objects.ui_val_dly_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param3_label, "R-Mix"); + lv_slider_set_range(objects.ui_val_dly_param3_slider, 0, 100); + + lv_obj_add_flag(objects.ui_val_dly_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_dly_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param4_label, "Freq"); + lv_slider_set_range(objects.ui_val_dly_param4_slider, 0, 100); + + // todo Tone + // todo trail switch } break; - // VALETON_EFFECT_DLY_ANALOG, - // VALETON_EFFECT_DLY_SLAPBACK, - // VALETON_EFFECT_DLY_SWEET_ECHO, - // VALETON_EFFECT_DLY_TAPE, - // VALETON_EFFECT_DLY_TUBE, - // VALETON_EFFECT_DLY_REV_ECHO, - // VALETON_EFFECT_DLY_RING_ECHO, - // VALETON_EFFECT_DLY_SWEEP_ECHO, - // VALETON_EFFECT_DLY_PING_PONG + case VALETON_EFFECT_DLY_SWEEP_ECHO: + { + lv_obj_clear_flag(objects.ui_val_dly_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param0_label, "Mix"); + lv_slider_set_range(objects.ui_val_dly_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_dly_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param1_label, "Time"); + lv_slider_set_range(objects.ui_val_dly_param1_slider, 0, 1000); + + lv_obj_clear_flag(objects.ui_val_dly_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param2_label, "F.Back"); + lv_slider_set_range(objects.ui_val_dly_param2_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_dly_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param3_label, "S-Depth"); + lv_slider_set_range(objects.ui_val_dly_param3_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_dly_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_dly_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_dly_param4_label, "S-Rate"); + lv_slider_set_range(objects.ui_val_dly_param4_slider, 0, 100); + + // todo trail switch + } break; } } break; @@ -1980,20 +2503,105 @@ uint8_t valeton_update_ui_parameters(void) switch ((int)param_entry->Value) { - case VALETON_EFFECT_RVB_AIR: + case VALETON_EFFECT_RVB_AIR: // fallthrough + case VALETON_EFFECT_RVB_PLATE: + { + lv_obj_clear_flag(objects.ui_val_rvb_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_rvb_param0_label, "Mix"); + lv_slider_set_range(objects.ui_val_rvb_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_rvb_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_rvb_param1_label, "Decay"); + lv_slider_set_range(objects.ui_val_rvb_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_rvb_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_rvb_param2_label, "Damp"); + lv_slider_set_range(objects.ui_val_rvb_param2_slider, 0, 100); + + //todo trail switch + + lv_obj_add_flag(objects.ui_val_rvb_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_rvb_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_rvb_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_rvb_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_rvb_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_rvb_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; + + case VALETON_EFFECT_RVB_ROOM: // fallthrough + case VALETON_EFFECT_RVB_HALL: // fallthrough + case VALETON_EFFECT_RVB_CHURCH: // fallthrough + case VALETON_EFFECT_RVB_PLATE_L: // fallthrough + case VALETON_EFFECT_RVB_SPRING: // fallthrough + case VALETON_EFFECT_RVB_N_STAR: // fallthrough + case VALETON_EFFECT_RVB_DEEPSEA: { + lv_obj_clear_flag(objects.ui_val_rvb_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_rvb_param0_label, "Mix"); + lv_slider_set_range(objects.ui_val_rvb_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_rvb_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_rvb_param1_label, "Decay"); + lv_slider_set_range(objects.ui_val_rvb_param1_slider, 0, 100); + + //todo trail switch + lv_obj_add_flag(objects.ui_val_rvb_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_rvb_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_rvb_param2_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_rvb_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_rvb_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_rvb_param3_value, LV_OBJ_FLAG_HIDDEN); + + lv_obj_add_flag(objects.ui_val_rvb_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_rvb_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_rvb_param4_value, LV_OBJ_FLAG_HIDDEN); } break; + + case VALETON_EFFECT_RVB_SWEET_SPACE: + { + lv_obj_clear_flag(objects.ui_val_rvb_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_rvb_param0_label, "Mix"); + lv_slider_set_range(objects.ui_val_rvb_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_rvb_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_rvb_param1_label, "Decay"); + lv_slider_set_range(objects.ui_val_rvb_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_rvb_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_rvb_param2_label, "Damp"); + lv_slider_set_range(objects.ui_val_rvb_param2_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_rvb_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_rvb_param3_label, "Mod"); + lv_slider_set_range(objects.ui_val_rvb_param3_slider, 0, 100); - // VALETON_EFFECT_RVB_ROOM, - // VALETON_EFFECT_RVB_HALL, - // VALETON_EFFECT_RVB_CHURCH, - // VALETON_EFFECT_RVB_PLATE_L, - // VALETON_EFFECT_RVB_PLATE, - // VALETON_EFFECT_RVB_SPRING, - // VALETON_EFFECT_RVB_N_STAR, - // VALETON_EFFECT_RVB_DEEPSEA, - // VALETON_EFFECT_RVB_SWEET_SPACE + //todo trail switch + + lv_obj_add_flag(objects.ui_val_rvb_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_rvb_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_add_flag(objects.ui_val_rvb_param4_value, LV_OBJ_FLAG_HIDDEN); + } break; } } break; @@ -2057,10 +2665,36 @@ uint8_t valeton_update_ui_parameters(void) { lv_dropdown_set_selected(objects.ui_val_ns_model_dropdown, (int)param_entry->Value); - //switch ((int)param_entry->Value) - //{ - // todo - //} + // all models have same params + lv_obj_clear_flag(objects.ui_val_rvb_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_rvb_param0_label, "Gain"); + lv_slider_set_range(objects.ui_val_rvb_param0_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_rvb_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_rvb_param1_label, "Volume"); + lv_slider_set_range(objects.ui_val_rvb_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_rvb_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_rvb_param2_label, "Bass"); + lv_slider_set_range(objects.ui_val_rvb_param2_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_rvb_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_rvb_param3_label, "Middle"); + lv_slider_set_range(objects.ui_val_rvb_param3_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_rvb_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_rvb_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_rvb_param4_label, "Treble"); + lv_slider_set_range(objects.ui_val_rvb_param4_slider, 0, 100); } break; case VALETON_PARAM_NS_PARAM_0: diff --git a/source/main/usb_valeton_gp5.c b/source/main/usb_valeton_gp5.c index 1e296ad4..4dcaef86 100644 --- a/source/main/usb_valeton_gp5.c +++ b/source/main/usb_valeton_gp5.c @@ -204,18 +204,18 @@ static const EffectMapEntry_t effect_map_amp[] = { { VALETON_EFFECT_AMP_DIZZ_VH, 0x65000007}, { VALETON_EFFECT_AMP_DIZZ_VH_PLUS, 0x6A000007}, { VALETON_EFFECT_AMP_EAGLE_120, 0x5F000007}, - { VALETON_EFFECT_AMP_EV_51, 0x65000007}, - { VALETON_EFFECT_AMP_SOLO100_LD, 0x6A000007}, - { VALETON_EFFECT_AMP_MESS_DUALV, 0x5F000007}, - { VALETON_EFFECT_AMP_MESS_DUALM, 0x5A000007}, - { VALETON_EFFECT_AMP_POWER_LD, 0x59000007}, - { VALETON_EFFECT_AMP_FLAGMAN_PLUS, 0x68000007}, - { VALETON_EFFECT_AMP_BOG_REDV, 0x69000007}, - { VALETON_EFFECT_AMP_CLASSIC_BASS, 0x63000007}, - { VALETON_EFFECT_AMP_FOXY_BASS, 0x5D000007}, - { VALETON_EFFECT_AMP_MESS_BASS, 0x6D000007}, - { VALETON_EFFECT_AMP_AC_PRE1, 0x73000008}, - { VALETON_EFFECT_AMP_AC_PRE2, 0x75000008}, + { VALETON_EFFECT_AMP_EV_51, 0x5A000007}, + { VALETON_EFFECT_AMP_SOLO100_LD, 0x59000007}, + { VALETON_EFFECT_AMP_MESS_DUALV, 0x68000007}, + { VALETON_EFFECT_AMP_MESS_DUALM, 0x69000007}, + { VALETON_EFFECT_AMP_POWER_LD, 0x63000007}, + { VALETON_EFFECT_AMP_FLAGMAN_PLUS, 0x5D000007}, + { VALETON_EFFECT_AMP_BOG_REDV, 0x6D000007}, + { VALETON_EFFECT_AMP_CLASSIC_BASS, 0x73000007}, + { VALETON_EFFECT_AMP_FOXY_BASS, 0x75000007}, + { VALETON_EFFECT_AMP_MESS_BASS, 0x77000007}, + { VALETON_EFFECT_AMP_AC_PRE1, 0x7A000008}, + { VALETON_EFFECT_AMP_AC_PRE2, 0x7B000008}, { 0xFF, 0xFFFFFFFF}, // end of table }; @@ -283,7 +283,7 @@ static const EffectMapEntry_t effect_map_dly[] = { static const EffectMapEntry_t effect_map_rvb[] = { { VALETON_EFFECT_RVB_AIR, 0x0B00000C}, - { VALETON_EFFECT_RVB_ROOM, 0x0000000C}, + { VALETON_EFFECT_RVB_ROOM, 0x000000C}, { VALETON_EFFECT_RVB_HALL, 0x0100000C}, { VALETON_EFFECT_RVB_CHURCH, 0x0200000C}, { VALETON_EFFECT_RVB_PLATE_L, 0x1000000C}, diff --git a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state index 8c709b88..ffa44f48 100644 --- a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state +++ b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state @@ -165,8 +165,7 @@ "enableClose": false, "icon": "svg:hierarchy" } - ], - "active": true + ] }, { "type": "tabset", @@ -204,7 +203,8 @@ }, "icon": "svg:page" } - ] + ], + "active": true }, { "type": "row", @@ -1018,10 +1018,11 @@ "selection": { "0": { "0": { - "0": { - "$selected": true + "2": { + "2": {} } - } + }, + "2": {} } }, "transform": { From 82c96e5922cfaf06b339cc7e5201745684c353b7 Mon Sep 17 00:00:00 2001 From: Greg Smith Date: Tue, 11 Nov 2025 08:55:22 +1100 Subject: [PATCH 07/34] More work on GP5. Now able to set block effects. --- source/main/display_valeton.c | 350 ++++++++++++++++-- source/main/usb_valeton_gp5.c | 146 +++++--- ...ontroller_800_480land.eez-project-ui-state | 13 +- 3 files changed, 424 insertions(+), 85 deletions(-) diff --git a/source/main/display_valeton.c b/source/main/display_valeton.c index 105551fa..f4331819 100644 --- a/source/main/display_valeton.c +++ b/source/main/display_valeton.c @@ -367,8 +367,298 @@ void valeton_action_parameter_changed(lv_event_t * e) ESP_LOGI(TAG, "Valeton Parameter changed"); - //todo - + // Block Switches + if (obj == objects.ui_val_nr_block_switch) + { + usb_modify_parameter(VALETON_PARAM_NR_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_val_pre_block_switch) + { + usb_modify_parameter(VALETON_PARAM_PRE_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_val_dst_block_switch) + { + usb_modify_parameter(VALETON_PARAM_DIST_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_val_amp_block_switch) + { + usb_modify_parameter(VALETON_PARAM_AMP_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_val_cab_block_switch) + { + usb_modify_parameter(VALETON_PARAM_CAB_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_val_eq_block_switch) + { + usb_modify_parameter(VALETON_PARAM_EQ_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_val_mod_block_switch) + { + usb_modify_parameter(VALETON_PARAM_MOD_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_val_dly_block_switch) + { + usb_modify_parameter(VALETON_PARAM_DLY_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_val_rvb_block_switch) + { + usb_modify_parameter(VALETON_PARAM_RVB_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_val_ns_block_switch) + { + usb_modify_parameter(VALETON_PARAM_NS_ENABLE, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + // Models + else if (obj == objects.ui_val_nr_model_dropdown) + { + usb_modify_parameter(VALETON_PARAM_NR_TYPE, lv_dropdown_get_selected(obj)); + } + else if (obj == objects.ui_val_pre_model_dropdown) + { + usb_modify_parameter(VALETON_PARAM_PRE_TYPE, lv_dropdown_get_selected(obj)); + } + else if (obj == objects.ui_val_dst_model_dropdown) + { + usb_modify_parameter(VALETON_PARAM_DIST_TYPE, lv_dropdown_get_selected(obj)); + } + else if (obj == objects.ui_val_amp_model_dropdown) + { + usb_modify_parameter(VALETON_PARAM_AMP_TYPE, lv_dropdown_get_selected(obj)); + } + else if (obj == objects.ui_val_cab_model_dropdown) + { + usb_modify_parameter(VALETON_PARAM_CAB_TYPE, lv_dropdown_get_selected(obj)); + } + else if (obj == objects.ui_val_eq_model_dropdown) + { + usb_modify_parameter(VALETON_PARAM_EQ_TYPE, lv_dropdown_get_selected(obj)); + } + else if (obj == objects.ui_val_mod_model_dropdown) + { + usb_modify_parameter(VALETON_PARAM_MOD_TYPE, lv_dropdown_get_selected(obj)); + } + else if (obj == objects.ui_val_dly_model_dropdown) + { + usb_modify_parameter(VALETON_PARAM_DLY_TYPE, lv_dropdown_get_selected(obj)); + } + else if (obj == objects.ui_val_rvb_model_dropdown) + { + usb_modify_parameter(VALETON_PARAM_RVB_TYPE, lv_dropdown_get_selected(obj)); + } + else if (obj == objects.ui_val_ns_model_dropdown) + { + usb_modify_parameter(VALETON_PARAM_NS_TYPE, lv_dropdown_get_selected(obj)); + } + // NR params + else if (obj == objects.ui_val_nr_param0_slider) + { + usb_modify_parameter(VALETON_PARAM_NR_PARAM_0, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_nr_param1_slider) + { + usb_modify_parameter(VALETON_PARAM_NR_PARAM_1, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_nr_param2_slider) + { + usb_modify_parameter(VALETON_PARAM_NR_PARAM_2, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_nr_param3_slider) + { + usb_modify_parameter(VALETON_PARAM_NR_PARAM_3, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_nr_param4_slider) + { + usb_modify_parameter(VALETON_PARAM_NR_PARAM_4, ((float)lv_slider_get_value(obj))); + } + // Pre block + else if (obj == objects.ui_val_pre_param0_slider) + { + usb_modify_parameter(VALETON_PARAM_PRE_PARAM_0, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_pre_param1_slider) + { + usb_modify_parameter(VALETON_PARAM_PRE_PARAM_1, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_pre_param2_slider) + { + usb_modify_parameter(VALETON_PARAM_PRE_PARAM_2, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_pre_param3_slider) + { + usb_modify_parameter(VALETON_PARAM_PRE_PARAM_3, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_pre_param4_slider) + { + usb_modify_parameter(VALETON_PARAM_PRE_PARAM_4, ((float)lv_slider_get_value(obj))); + } + // Dst block + else if (obj == objects.ui_val_dst_param0_slider) + { + usb_modify_parameter(VALETON_PARAM_DIST_PARAM_0, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_dst_param1_slider) + { + usb_modify_parameter(VALETON_PARAM_DIST_PARAM_1, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_dst_param2_slider) + { + usb_modify_parameter(VALETON_PARAM_DIST_PARAM_2, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_dst_param3_slider) + { + usb_modify_parameter(VALETON_PARAM_DIST_PARAM_3, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_dst_param4_slider) + { + usb_modify_parameter(VALETON_PARAM_DIST_PARAM_4, ((float)lv_slider_get_value(obj))); + } + // Amp block + else if (obj == objects.ui_val_amp_param0_slider) + { + usb_modify_parameter(VALETON_PARAM_AMP_PARAM_0, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_amp_param1_slider) + { + usb_modify_parameter(VALETON_PARAM_AMP_PARAM_1, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_amp_param2_slider) + { + usb_modify_parameter(VALETON_PARAM_AMP_PARAM_2, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_amp_param3_slider) + { + usb_modify_parameter(VALETON_PARAM_AMP_PARAM_3, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_amp_param4_slider) + { + usb_modify_parameter(VALETON_PARAM_AMP_PARAM_4, ((float)lv_slider_get_value(obj))); + } + // Cab block + else if (obj == objects.ui_val_cab_param0_slider) + { + usb_modify_parameter(VALETON_PARAM_CAB_PARAM_0, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_cab_param1_slider) + { + usb_modify_parameter(VALETON_PARAM_CAB_PARAM_1, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_cab_param2_slider) + { + usb_modify_parameter(VALETON_PARAM_CAB_PARAM_2, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_cab_param3_slider) + { + usb_modify_parameter(VALETON_PARAM_CAB_PARAM_3, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_cab_param4_slider) + { + usb_modify_parameter(VALETON_PARAM_CAB_PARAM_4, ((float)lv_slider_get_value(obj))); + } + // EQ block + else if (obj == objects.ui_val_eq_param0_slider) + { + usb_modify_parameter(VALETON_PARAM_EQ_PARAM_0, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_eq_param1_slider) + { + usb_modify_parameter(VALETON_PARAM_EQ_PARAM_1, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_eq_param2_slider) + { + usb_modify_parameter(VALETON_PARAM_EQ_PARAM_2, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_eq_param3_slider) + { + usb_modify_parameter(VALETON_PARAM_EQ_PARAM_3, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_eq_param4_slider) + { + usb_modify_parameter(VALETON_PARAM_EQ_PARAM_4, ((float)lv_slider_get_value(obj))); + } + // Mod block + else if (obj == objects.ui_val_mod_param0_slider) + { + usb_modify_parameter(VALETON_PARAM_MOD_PARAM_0, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_mod_param1_slider) + { + usb_modify_parameter(VALETON_PARAM_MOD_PARAM_1, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_mod_param2_slider) + { + usb_modify_parameter(VALETON_PARAM_MOD_PARAM_2, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_mod_param3_slider) + { + usb_modify_parameter(VALETON_PARAM_MOD_PARAM_3, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_mod_param4_slider) + { + usb_modify_parameter(VALETON_PARAM_MOD_PARAM_4, ((float)lv_slider_get_value(obj))); + } + // Dly block + else if (obj == objects.ui_val_dly_param0_slider) + { + usb_modify_parameter(VALETON_PARAM_DLY_PARAM_0, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_dly_param1_slider) + { + usb_modify_parameter(VALETON_PARAM_DLY_PARAM_1, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_dly_param2_slider) + { + usb_modify_parameter(VALETON_PARAM_DLY_PARAM_2, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_dly_param3_slider) + { + usb_modify_parameter(VALETON_PARAM_DLY_PARAM_3, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_dly_param4_slider) + { + usb_modify_parameter(VALETON_PARAM_DLY_PARAM_4, ((float)lv_slider_get_value(obj))); + } + // Rvb block + else if (obj == objects.ui_val_rvb_param0_slider) + { + usb_modify_parameter(VALETON_PARAM_RVB_PARAM_0, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_rvb_param1_slider) + { + usb_modify_parameter(VALETON_PARAM_RVB_PARAM_1, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_rvb_param2_slider) + { + usb_modify_parameter(VALETON_PARAM_RVB_PARAM_2, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_rvb_param3_slider) + { + usb_modify_parameter(VALETON_PARAM_RVB_PARAM_3, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_rvb_param4_slider) + { + usb_modify_parameter(VALETON_PARAM_RVB_PARAM_4, ((float)lv_slider_get_value(obj))); + } + // NS block + else if (obj == objects.ui_val_ns_param0_slider) + { + usb_modify_parameter(VALETON_PARAM_NS_PARAM_0, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_ns_param1_slider) + { + usb_modify_parameter(VALETON_PARAM_NS_PARAM_1, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_ns_param2_slider) + { + usb_modify_parameter(VALETON_PARAM_NS_PARAM_2, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_ns_param3_slider) + { + usb_modify_parameter(VALETON_PARAM_NS_PARAM_3, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_ns_param4_slider) + { + usb_modify_parameter(VALETON_PARAM_NS_PARAM_4, ((float)lv_slider_get_value(obj))); + } #endif // CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI } @@ -2666,35 +2956,35 @@ uint8_t valeton_update_ui_parameters(void) lv_dropdown_set_selected(objects.ui_val_ns_model_dropdown, (int)param_entry->Value); // all models have same params - lv_obj_clear_flag(objects.ui_val_rvb_param0_label, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_val_rvb_param0_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_val_rvb_param0_value, LV_OBJ_FLAG_HIDDEN); - lv_label_set_text(objects.ui_val_rvb_param0_label, "Gain"); - lv_slider_set_range(objects.ui_val_rvb_param0_slider, 0, 100); + lv_obj_clear_flag(objects.ui_val_ns_param0_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_ns_param0_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_ns_param0_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_ns_param0_label, "Gain"); + lv_slider_set_range(objects.ui_val_ns_param0_slider, 0, 100); - lv_obj_clear_flag(objects.ui_val_rvb_param1_label, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_val_rvb_param1_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_val_rvb_param1_value, LV_OBJ_FLAG_HIDDEN); - lv_label_set_text(objects.ui_val_rvb_param1_label, "Volume"); - lv_slider_set_range(objects.ui_val_rvb_param1_slider, 0, 100); - - lv_obj_clear_flag(objects.ui_val_rvb_param2_label, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_val_rvb_param2_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_val_rvb_param2_value, LV_OBJ_FLAG_HIDDEN); - lv_label_set_text(objects.ui_val_rvb_param2_label, "Bass"); - lv_slider_set_range(objects.ui_val_rvb_param2_slider, 0, 100); - - lv_obj_clear_flag(objects.ui_val_rvb_param3_label, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_val_rvb_param3_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_val_rvb_param3_value, LV_OBJ_FLAG_HIDDEN); - lv_label_set_text(objects.ui_val_rvb_param3_label, "Middle"); - lv_slider_set_range(objects.ui_val_rvb_param3_slider, 0, 100); - - lv_obj_clear_flag(objects.ui_val_rvb_param4_label, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_val_rvb_param4_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(objects.ui_val_rvb_param4_value, LV_OBJ_FLAG_HIDDEN); - lv_label_set_text(objects.ui_val_rvb_param4_label, "Treble"); - lv_slider_set_range(objects.ui_val_rvb_param4_slider, 0, 100); + lv_obj_clear_flag(objects.ui_val_ns_param1_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_ns_param1_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_ns_param1_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_ns_param1_label, "Volume"); + lv_slider_set_range(objects.ui_val_ns_param1_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_ns_param2_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_ns_param2_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_ns_param2_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_ns_param2_label, "Bass"); + lv_slider_set_range(objects.ui_val_ns_param2_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_ns_param3_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_ns_param3_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_ns_param3_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_ns_param3_label, "Middle"); + lv_slider_set_range(objects.ui_val_ns_param3_slider, 0, 100); + + lv_obj_clear_flag(objects.ui_val_ns_param4_label, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_ns_param4_slider, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(objects.ui_val_ns_param4_value, LV_OBJ_FLAG_HIDDEN); + lv_label_set_text(objects.ui_val_ns_param4_label, "Treble"); + lv_slider_set_range(objects.ui_val_ns_param4_slider, 0, 100); } break; case VALETON_PARAM_NS_PARAM_0: diff --git a/source/main/usb_valeton_gp5.c b/source/main/usb_valeton_gp5.c index 4dcaef86..6d29e04f 100644 --- a/source/main/usb_valeton_gp5.c +++ b/source/main/usb_valeton_gp5.c @@ -174,11 +174,11 @@ static const EffectMapEntry_t effect_map_dst[] = { { VALETON_EFFECT_DIST_SUPER_OD, 0x06000003}, { VALETON_EFFECT_DIST_SM_DIST, 0x2A000003}, { VALETON_EFFECT_DIST_PLUSTORTION, 0x29000003}, - { VALETON_EFFECT_DIST_LA_CHARGER, 0x2B000003}, - { VALETON_EFFECT_DIST_DARKTALE, 0x22000003}, - { VALETON_EFFECT_DIST_SORA_FUZZ, 0x24000003}, - { VALETON_EFFECT_DIST_RED_HAZE, 0x40000003}, - { VALETON_EFFECT_DIST_BASS_OD, 0x41000003}, //todo + { VALETON_EFFECT_DIST_LA_CHARGER, 0x30000003}, + { VALETON_EFFECT_DIST_DARKTALE, 0x2B000003}, + { VALETON_EFFECT_DIST_SORA_FUZZ, 0x22000003}, + { VALETON_EFFECT_DIST_RED_HAZE, 0x24000003}, + { VALETON_EFFECT_DIST_BASS_OD, 0x40000003}, { 0xFF, 0xFFFFFFFF}, // end of table }; @@ -282,15 +282,15 @@ static const EffectMapEntry_t effect_map_dly[] = { }; static const EffectMapEntry_t effect_map_rvb[] = { - { VALETON_EFFECT_RVB_AIR, 0x0B00000C}, - { VALETON_EFFECT_RVB_ROOM, 0x000000C}, - { VALETON_EFFECT_RVB_HALL, 0x0100000C}, - { VALETON_EFFECT_RVB_CHURCH, 0x0200000C}, + { VALETON_EFFECT_RVB_AIR, 0xB00000C}, + { VALETON_EFFECT_RVB_ROOM, 0x00000C}, + { VALETON_EFFECT_RVB_HALL, 0x100000C}, + { VALETON_EFFECT_RVB_CHURCH, 0x200000C}, { VALETON_EFFECT_RVB_PLATE_L, 0x1000000C}, { VALETON_EFFECT_RVB_PLATE, 0x0F00000C}, - { VALETON_EFFECT_RVB_SPRING, 0x0400000C}, - { VALETON_EFFECT_RVB_N_STAR, 0x0600000C}, - { VALETON_EFFECT_RVB_DEEPSEA, 0x0700000C}, + { VALETON_EFFECT_RVB_SPRING, 0x400000C}, + { VALETON_EFFECT_RVB_N_STAR, 0x600000C}, + { VALETON_EFFECT_RVB_DEEPSEA, 0x700000C}, { VALETON_EFFECT_RVB_SWEET_SPACE, 0x1500000C}, { 0xFF, 0xFFFFFFFF}, // end of table }; @@ -927,10 +927,10 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 case 0x20: { - // unknown, possibly parameters + // IRs ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); - ESP_LOGI(TAG, "Got unknown 0x20"); + ESP_LOGI(TAG, "Got IRs"); // contains the text "User" numerous times @@ -991,12 +991,10 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 case 0x24: { - // unknown, some sort of user slots? + // NAM models/Snaptones ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); - ESP_LOGI(TAG, "Got unknown 0x24"); - - // contains text "OCD", "Reverb", "Sweet Drive", "Empty" etc + ESP_LOGI(TAG, "Got Snaptones"); // example response // 0000 f0 0d @@ -1296,7 +1294,6 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 // debug //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], 80, ESP_LOG_INFO); - // first 6 bytes are the value, then shift it right by 4 bits if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) { for (loop = VALETON_EFFECT_BLOCK_NR; loop < VALETON_EFFECT_BLOCK_NS; loop++) @@ -1308,23 +1305,21 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 effect_code |= (((buffer[read_index + 6] << 4) | (buffer[read_index + 7] & 0x0F))); //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], 8, ESP_LOG_INFO); - //ESP_LOGI(TAG, "Effect code %X for effect %d", (int)effect_code, (int)loop); - + param_ptr[VALETON_PARAM_NR_TYPE + loop].Value = (float)usb_valeton_gp5_get_effect_block_index(effect_code, loop); read_index += 8; + + //ESP_LOGI(TAG, "Effect code %X for effect %d, model:%d", (int)effect_code, (int)loop, (int)param_ptr[VALETON_PARAM_NR_TYPE + loop].Value); } valeton_params_release_locked_access(); } - // debug - //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index - 49], 128, ESP_LOG_INFO); - // skip to start of params, back to back 32 bit big-endian floats read_index += 16; + //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], 64, ESP_LOG_INFO); - - ESP_LOGI(TAG, "Param values read_index: %d", (int)read_index); + //ESP_LOGI(TAG, "Param values read_index: %d", (int)read_index); // params following match the order defined in Valeton params from VALETON_PARAM_NR_PARAM_0 down if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) @@ -1374,7 +1369,7 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 } // debug - valeton_dump_parameters(); + //valeton_dump_parameters(); } break; case 0x43: @@ -1618,11 +1613,11 @@ static void __attribute__((unused)) usb_valeton_gp5_request_unknown_3(void) * RETURN: * NOTES: *****************************************************************************/ -static void __attribute__((unused)) usb_valeton_gp5_request_unknown_4(void) +static void __attribute__((unused)) usb_valeton_gp5_request_ir(void) { uint8_t midi_tx[] = {0x02, 0x00}; - ESP_LOGI(TAG, "Request unknown_4"); + ESP_LOGI(TAG, "Request IR"); usb_valeton_gp5_send_sysex((const uint8_t*)midi_tx, sizeof(midi_tx), 0x02); } @@ -1634,11 +1629,11 @@ static void __attribute__((unused)) usb_valeton_gp5_request_unknown_4(void) * RETURN: * NOTES: *****************************************************************************/ -static void __attribute__((unused)) usb_valeton_gp5_request_unknown_5(void) +static void __attribute__((unused)) usb_valeton_gp5_request_nams(void) { uint8_t midi_tx[] = {0x02, 0x04}; - ESP_LOGI(TAG, "Request unknown_5"); + ESP_LOGI(TAG, "Request NAMs"); usb_valeton_gp5_send_sysex((const uint8_t*)midi_tx, sizeof(midi_tx), 0x02); } @@ -1674,18 +1669,13 @@ static void usb_valeton_gp5_set_preset(uint8_t index) { ESP_LOGI(TAG, "Set preset %d", index); - // other way preset - // f0 06 0e 00 01 00 00 00 06 01 01 04 03 05 0d 00 00 00 00 00 00 f7 - - // send control change - uint8_t midi_tx[4]; + uint8_t midi_tx[] = {0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - midi_tx[0] = 0x0B; - midi_tx[1] = 0xB0; - midi_tx[2] = 0x00; - midi_tx[3] = index; + // set the preset index + midi_tx[2] = index >> 4; + midi_tx[3] = index & 0x0F; - midi_host_data_tx_blocking(midi_dev, (const uint8_t*)midi_tx, sizeof(midi_tx), 50); + usb_valeton_gp5_send_sysex((const uint8_t*)midi_tx, sizeof(midi_tx), 0x01); } /**************************************************************************** @@ -1708,6 +1698,9 @@ static void usb_valeton_gp5_set_effect_block_state(uint8_t block_index, uint8_t ESP_LOGI(TAG, "Set Effect Block state %d %d", block_index, state); + // debug + ESP_LOG_BUFFER_HEXDUMP(TAG, midi_tx, sizeof(midi_tx), ESP_LOG_INFO); + usb_valeton_gp5_send_sysex((const uint8_t*)midi_tx, sizeof(midi_tx), 0x01); } @@ -1720,19 +1713,63 @@ static void usb_valeton_gp5_set_effect_block_state(uint8_t block_index, uint8_t *****************************************************************************/ static void usb_valeton_gp5_set_effect_block_model(uint8_t block_index, uint8_t model) { - uint8_t midi_tx[] = {0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + // | block | | block | | effect code | + uint8_t midi_tx[] = {0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + uint32_t effect_code = 0; - // set the block index + // set the block index (twice) midi_tx[2] = block_index >> 4; midi_tx[3] = block_index & 0x0F; - // set model index - midi_tx[10] = model >> 4; - midi_tx[11] = model & 0x0F; + midi_tx[10] = block_index >> 4; + midi_tx[11] = block_index & 0x0F; - ESP_LOGI(TAG, "Set Effect Block model %d %d", block_index, model); + if (block_index < VALETON_EFFECT_BLOCK_LAST) + { + const EffectMapEntry_t* map = effect_maps[block_index]; - usb_valeton_gp5_send_sysex((const uint8_t*)midi_tx, sizeof(midi_tx), 0x01); + // search for the matching effect code for the model + while (map->effect_index != 0xFF) + { + // debug + //ESP_LOGI(TAG, "Effect map %X ", (int)map->byte_sequence); + + if (map->effect_index == model) + { + // found match + effect_code = map->byte_sequence; + break; + } + + map++; + } + } + + if (effect_code != 0) + { + ESP_LOGI(TAG, "Set Effect Block model %d %d %X", (int)block_index, (int)model, (int)effect_code); + + // set the effect code + uint8_t* ptr = (uint8_t*)&effect_code; + // 18 to 25 + midi_tx[18] = ptr[3] >> 4; + midi_tx[19] = ptr[3] & 0x0F; + midi_tx[20] = ptr[2] >> 4; + midi_tx[11] = ptr[2] & 0x0F; + midi_tx[22] = ptr[1] >> 4; + midi_tx[23] = ptr[1] & 0x0F; + midi_tx[24] = ptr[0] >> 4; + midi_tx[25] = ptr[0] & 0x0F; + + // debug + ESP_LOG_BUFFER_HEXDUMP(TAG, midi_tx, sizeof(midi_tx), ESP_LOG_INFO); + + usb_valeton_gp5_send_sysex((const uint8_t*)midi_tx, sizeof(midi_tx), 0x01); + } + else + { + ESP_LOGI(TAG, "Set Effect Block model code not found for %d %d", block_index, model); + } } /**************************************************************************** @@ -1853,6 +1890,19 @@ static esp_err_t usb_valeton_gp5_send_single_parameter(uint16_t index, float val usb_valeton_gp5_set_effect_block_model_parameter(block, param, value); } + // if we have messages waiting in the queue, it will trigger another + // change that will overwrite this one. Skip the UI refresh to save time + if (uxQueueMessagesWaiting(input_queue) == 0) + { + usb_valeton_gp5_request_preset_params(); + + // signal to refresh param UI + //UI_RefreshParameterValues(); + + // update web UI + //wifi_request_sync(WIFI_SYNC_TYPE_PARAMS, NULL, NULL); + } + res = ESP_OK; } diff --git a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state index ffa44f48..8a9342bb 100644 --- a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state +++ b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state @@ -165,7 +165,8 @@ "enableClose": false, "icon": "svg:hierarchy" } - ] + ], + "active": true }, { "type": "tabset", @@ -203,8 +204,7 @@ }, "icon": "svg:page" } - ], - "active": true + ] }, { "type": "row", @@ -1018,11 +1018,10 @@ "selection": { "0": { "0": { - "2": { - "2": {} + "1": { + "$selected": true } - }, - "2": {} + } } }, "transform": { From 13a0f030bf8263c7fd16b08f885a6aa3f56007c9 Mon Sep 17 00:00:00 2001 From: Greg Smith Date: Fri, 14 Nov 2025 14:11:50 +1100 Subject: [PATCH 08/34] - Implemented Valeton settings UI on 3.5" - Added 2 new platform variants --- source/esp_idf_project_configuration.json | 52 + source/main/CMakeLists.txt | 6 +- source/main/Kconfig.projbuild | 6 + source/main/main.h | 75 + source/main/platform_pirate_max35.c | 432 + source/main/platform_pirate_pro_169.c | 350 + .../main/ui_generated_480x320land/screens.c | 2814 +++- .../main/ui_generated_480x320land/screens.h | 222 +- .../main/ui_generated_800x480land/screens.c | 80 +- .../main/ui_generated_800x480land/screens.h | 8 +- source/main/usb_valeton_gp5.c | 19 +- source/sdkconfig.piratemax35 | 25 + source/sdkconfig.piratepro | 20 + .../Tonex_Controller_480_320.eez-project | 13386 +++++++++++++++- ...ex_Controller_480_320.eez-project-ui-state | 63 +- .../Tonex_Controller_800_480land.eez-project | 462 +- ...ontroller_800_480land.eez-project-ui-state | 10 +- 17 files changed, 17418 insertions(+), 612 deletions(-) create mode 100644 source/main/platform_pirate_max35.c create mode 100644 source/main/platform_pirate_pro_169.c create mode 100644 source/sdkconfig.piratemax35 create mode 100644 source/sdkconfig.piratepro diff --git a/source/esp_idf_project_configuration.json b/source/esp_idf_project_configuration.json index 261392f4..14c43fab 100644 --- a/source/esp_idf_project_configuration.json +++ b/source/esp_idf_project_configuration.json @@ -466,5 +466,57 @@ "postBuild": "", "postFlash": "" } + }, + "PiratePro": { + "build": { + "compileArgs": [], + "ninjaArgs": [], + "buildDirectoryPath": "${workspaceFolder}/build_piratepro", + "sdkconfigDefaults": [ + "sdkconfig.defaults", + "sdkconfig.piratepro" + ], + "sdkconfigFilePath": "${workspaceFolder}/build_piratepro" + }, + "env": {}, + "flashBaudRate": "", + "monitorBaudRate": "", + "openOCD": { + "debugLevel": 0, + "configs": [], + "args": [] + }, + "tasks": { + "preBuild": "", + "preFlash": "", + "postBuild": "", + "postFlash": "" + } + }, + "PirateMaxV2": { + "build": { + "compileArgs": [], + "ninjaArgs": [], + "buildDirectoryPath": "${workspaceFolder}/build_piratemax35", + "sdkconfigDefaults": [ + "sdkconfig.defaults", + "sdkconfig.piratemax35" + ], + "sdkconfigFilePath": "${workspaceFolder}/build_piratemax35" + }, + "env": {}, + "flashBaudRate": "", + "monitorBaudRate": "", + "openOCD": { + "debugLevel": 0, + "configs": [], + "args": [] + }, + "tasks": { + "preBuild": "", + "preFlash": "", + "postBuild": "", + "postFlash": "" + } } } diff --git a/source/main/CMakeLists.txt b/source/main/CMakeLists.txt index 8ec86728..51c2a9e4 100644 --- a/source/main/CMakeLists.txt +++ b/source/main/CMakeLists.txt @@ -1,5 +1,5 @@ -idf_component_register(SRCS "valeton_params.c" "midi_control.c" "control.c" "footswitches.c" "CH422G.c" "display.c" "main.c" "tonex_params.c" "SX1509.c" "display_tonex.c" "display_valeton.c" +idf_component_register(SRCS "platform_pirate_pro_169.c" "platform_pirate_max35.c" "valeton_params.c" "midi_control.c" "control.c" "footswitches.c" "CH422G.c" "display.c" "main.c" "tonex_params.c" "SX1509.c" "display_tonex.c" "display_valeton.c" "usb_comms.c" "usb_tonex_one.c" "usb_tonex_common.c" "usb_tonex.c" "usb_valeton_gp5.c" "CH422G.c" "midi_serial.c" "wifi_config.c" "leds.c" "midi_helper.c" "LP5562.c" "platform_devkitc.c" "platform_lgtdisps3.c" "platform_m5atoms3r.c" "platform_ws19t.c" "platform_ws43.c" "platform_wszero.c" "platform_ws169.c" "platform_ws35b.c" "platform_jc3248w.c" @@ -45,7 +45,7 @@ if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_43B OR CONFIG_TONEX_CONTR "ui_generated_800x480land/ui_image_skin_jcm.c") endif() -if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_35B OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_JC3248W535) +if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_35B OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_JC3248W535 OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_MAX_V2) target_include_directories(${COMPONENT_LIB} PRIVATE include "ui_generated_480x320land") target_sources(${COMPONENT_LIB} PRIVATE "ui_generated_480x320land/ui.c" "ui_generated_480x320land/styles.c" @@ -84,7 +84,7 @@ if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_35B OR CONFIG_TONEX_CONTR "ui_generated_480x320land/ui_image_skin_jcm.c") endif() -if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_169 OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_169TOUCH) +if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_169 OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_169TOUCH OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_PRO) if(CONFIG_TONEX_CONTROLLER_WAVESHARE_169_LANDSCAPE) target_include_directories(${COMPONENT_LIB} PRIVATE include "ui_generated_280x240land") diff --git a/source/main/Kconfig.projbuild b/source/main/Kconfig.projbuild index 7e25bcc6..0617693c 100644 --- a/source/main/Kconfig.projbuild +++ b/source/main/Kconfig.projbuild @@ -36,6 +36,12 @@ menu "Tonex Controller Configuration" config TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_19TOUCH bool "Waveshare 1.9 Touch" + + config TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_PRO + bool "Pirate Midi Polar Pro 1.69" + + config TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_MAX_V2 + bool "Pirate Midi Polar Max V2 3.5 touch" endchoice diff --git a/source/main/main.h b/source/main/main.h index da60f25d..3f6e44de 100644 --- a/source/main/main.h +++ b/source/main/main.h @@ -520,6 +520,81 @@ extern SemaphoreHandle_t I2CMutex_2; #define PIN_NUM_CLK GPIO_NUM12 #define PIN_NUM_CS GPIO_NUM10 +#elif CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_PRO + // I2C bus 1 + #define I2C_MASTER_1_SCL_IO GPIO_NUM_10 + #define I2C_MASTER_1_SDA_IO GPIO_NUM_11 + + #define EXTERNAL_IO_EXPANDER_BUS I2C_MASTER_NUM_1 + #define EXTERNAL_IO_EXPANDER_MUTEX I2CMutex_1 + + // I2C bus 2 + #define I2C_MASTER_2_SCL_IO -1 + #define I2C_MASTER_2_SDA_IO -1 + + // direct IO pins + #define FOOTSWITCH_1 GPIO_NUM_16 + #define FOOTSWITCH_2 GPIO_NUM_3 + #define FOOTSWITCH_3 GPIO_NUM_2 + #define FOOTSWITCH_4 GPIO_NUM_44 // same as UART RX + + // Midi + #define UART_RX_PIN GPIO_NUM_18 + #define UART_TX_PIN GPIO_NUM_17 + + // leds + #define LED_OUTPUT_GPIO_NUM -1 + + // LCD pins + #define POLAR_PRO_240_280_LCD_GPIO_SCLK (GPIO_NUM_6) + #define POLAR_PRO_240_280_LCD_GPIO_MOSI (GPIO_NUM_7) + #define POLAR_PRO_240_280_LCD_GPIO_RST (GPIO_NUM_8) + #define POLAR_PRO_240_280_LCD_GPIO_DC (GPIO_NUM_4) + #define POLAR_PRO_240_280_LCD_GPIO_CS (GPIO_NUM_5) + #define POLAR_PRO_240_280_LCD_GPIO_BL (GPIO_NUM_15) + +#elif CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_MAX_V2 + // I2C bus 1 + #define I2C_MASTER_1_SCL_IO GPIO_NUM_7 + #define I2C_MASTER_1_SDA_IO GPIO_NUM_8 + + // I2C bus 2 + #define I2C_MASTER_2_SCL_IO -1 + #define I2C_MASTER_2_SDA_IO -1 + + #define EXTERNAL_IO_EXPANDER_BUS I2C_MASTER_NUM_1 + #define EXTERNAL_IO_EXPANDER_MUTEX I2CMutex_1 + + #define FOOTSWITCH_1 GPIO_NUM_38 + #define FOOTSWITCH_2 GPIO_NUM_39 + #define FOOTSWITCH_3 GPIO_NUM_40 + #define FOOTSWITCH_4 GPIO_NUM_41 + + // Midi: + #define UART_RX_PIN GPIO_NUM_17 + #define UART_TX_PIN GPIO_NUM_18 + + // leds + #define LED_OUTPUT_GPIO_NUM -1 + + // LCD pins + #define POLAR_MAX_35_LCD_GPIO_SCLK GPIO_NUM_5 + #define POLAR_MAX_35_LCD_GPIO_QSPI_0 GPIO_NUM_1 + #define POLAR_MAX_35_LCD_GPIO_QSPI_1 GPIO_NUM_2 + #define POLAR_MAX_35_LCD_GPIO_QSPI_2 GPIO_NUM_3 + #define POLAR_MAX_35_LCD_GPIO_QSPI_3 GPIO_NUM_4 + #define POLAR_MAX_35_LCD_GPIO_RST GPIO_NUM_NC + #define POLAR_MAX_35_LCD_GPIO_CS GPIO_NUM_12 + #define POLAR_MAX_35_LCD_GPIO_BL GPIO_NUM_6 + + // backlight + #define POLAR_MAX_35_LCD_BL_LEDC_TIMER LEDC_TIMER_1 + #define POLAR_MAX_35_LCD_BL_LEDC_MODE LEDC_LOW_SPEED_MODE + #define POLAR_MAX_35_LCD_BL_LEDC_CHANNEL LEDC_CHANNEL_0 + #define POLAR_MAX_35_LCD_BL_LEDC_DUTY_RES LEDC_TIMER_10_BIT // Set duty resolution to 13 bits + #define POLAR_MAX_35_LCD_BL_LEDC_DUTY (1024) // Set duty to 50%. (2 ** 13) * 50% = 4096 + #define POLAR_MAX_35_LCD_BL_LEDC_FREQUENCY (10000) // Frequency in Hertz. Set frequency at 5 kHz + #else #error "Unknown hardware platform!" #endif diff --git a/source/main/platform_pirate_max35.c b/source/main/platform_pirate_max35.c new file mode 100644 index 00000000..4f94fce0 --- /dev/null +++ b/source/main/platform_pirate_max35.c @@ -0,0 +1,432 @@ +/* + Copyright (C) 2025 Greg Smith + +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. + +*/ + +#include +#include "sdkconfig.h" +#include +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "freertos/semphr.h" +#include "esp_timer.h" +#include "esp_lcd_panel_ops.h" +#include "esp_lcd_panel_rgb.h" +#include "driver/gpio.h" +#include "esp_err.h" +#include "esp_system.h" +#include "esp_wifi.h" +#include "esp_event.h" +#include "esp_log.h" +#include "nvs_flash.h" +#include "driver/uart.h" +#include "driver/gpio.h" +#include "driver/ledc.h" +#include "driver/spi_master.h" +#include "lvgl.h" +#include "demos/lv_demos.h" +#include "esp_lcd_panel_io.h" +#include "esp_lcd_panel_vendor.h" +#include "esp_lcd_panel_ops.h" +#include "esp_vfs.h" +#include "esp_vfs_fat.h" +#include "esp_ota_ops.h" +#include "sys/param.h" +#include "esp_wifi.h" +#include "esp_log.h" +#include "esp_mac.h" +#include "esp_crc.h" +#include "esp_now.h" +#include "driver/i2c.h" +#include "soc/lldesc.h" +#include "esp_lcd_touch_ft6336.h" +#include "esp_lcd_touch_cst816s.h" +#include "esp_lcd_st7796.h" +#include "esp_io_expander_tca9554.h" +#include "esp_intr_alloc.h" +#include "main.h" +#if CONFIG_TONEX_CONTROLLER_HAS_DISPLAY + #include "ui.h" +#endif +#include "usb/usb_host.h" +#include "usb/cdc_acm_host.h" +#include "usb_comms.h" +#include "usb_tonex_common.h" +#include "usb_tonex_one.h" +#include "usb_tonex.h" +#include "display.h" +#include "CH422G.h" +#include "control.h" +#include "task_priorities.h" +#include "midi_control.h" +#include "LP5562.h" +#include "tonex_params.h" + +#if CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_MAX_V2 + +// LCD: ST7796, touch: FT6336 + +static const char *TAG = "platform_piratemax35"; + +// LCD panel config +#define POLAR_MAX_35_LCD_H_RES (480) +#define POLAR_MAX_35_LCD_V_RES (320) + +/* LCD settings */ +#define POLAR_MAX_35_LCD_SPI_NUM (SPI2_HOST) +#define POLAR_MAX_35_LCD_PIXEL_CLK_HZ (80 * 1000 * 1000) +#define POLAR_MAX_35_LCD_CMD_BITS (8) +#define POLAR_MAX_35_LCD_PARAM_BITS (8) +#define POLAR_MAX_35_LCD_COLOR_SPACE (LCD_RGB_ELEMENT_ORDER_RGB) +#define POLAR_MAX_35_LCD_BITS_PER_PIXEL (16) +#define POLAR_MAX_35_LCD_DRAW_BUFF_DOUBLE (1) +#define POLAR_MAX_35_LCD_DRAW_BUFF_HEIGHT (50) +#define POLAR_MAX_35_LCD_BL_ON_LEVEL (0) + +#define BUF_SIZE (1024) +#define I2C_MASTER_TIMEOUT_MS 1000 + +static SemaphoreHandle_t I2CMutexHandle; +static lv_disp_draw_buf_t disp_buf; // contains internal graphic buffer(s) called draw buffer(s) +static lv_disp_drv_t* disp_drv; // contains callback functions +static esp_lcd_panel_io_handle_t lcd_io = NULL; +static esp_lcd_panel_handle_t lcd_panel = NULL; +static esp_lcd_touch_handle_t tp = NULL; +static esp_lcd_panel_io_handle_t tp_io_handle = NULL; +static lv_indev_drv_t indev_drv; // Input device driver (Touch) +static esp_io_expander_handle_t expander_handle = NULL; + +// below from Waveshare sample +static const st7796_lcd_init_cmd_t lcd_init_cmds[] = +{ +// {cmd, { data }, data_size, delay_ms} + /* Power contorl B, power control = 0, DC_ENA = 1 */ + {0x11, (uint8_t []){ 0x00 }, 0, 120}, + + // {0x36, (uint8_t []){ 0x08 }, 1, 0}, + + {0x3A, (uint8_t []){ 0x05 }, 1, 0}, + {0xF0, (uint8_t []){ 0xC3 }, 1, 0}, + {0xF0, (uint8_t []){ 0x96 }, 1, 0}, + {0xB4, (uint8_t []){ 0x01 }, 1, 0}, + {0xB7, (uint8_t []){ 0xC6 }, 1, 0}, + {0xC0, (uint8_t []){ 0x80, 0x45 }, 2, 0}, + {0xC1, (uint8_t []){ 0x13 }, 1, 0}, + {0xC2, (uint8_t []){ 0xA7 }, 1, 0}, + {0xC5, (uint8_t []){ 0x0A }, 1, 0}, + {0xE8, (uint8_t []){ 0x40, 0x8A, 0x00, 0x00, 0x29, 0x19, 0xA5, 0x33}, 8, 0}, + {0xE0, (uint8_t []){ 0xD0, 0x08, 0x0F, 0x06, 0x06, 0x33, 0x30, 0x33, 0x47, 0x17, 0x13, 0x13, 0x2B, 0x31}, 14, 0}, + {0xE1, (uint8_t []){ 0xD0, 0x0A, 0x11, 0x0B, 0x09, 0x07, 0x2F, 0x33, 0x47, 0x38, 0x15, 0x16, 0x2C, 0x32},14, 0}, + {0xF0, (uint8_t []){ 0x3C }, 1, 0}, + {0xF0, (uint8_t []){ 0x69 }, 1, 120}, + {0x21, (uint8_t []){ 0x00 }, 0, 0}, + {0x29, (uint8_t []){ 0x00 }, 0, 0}, +}; + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +__attribute__((unused)) void platform_adjust_touch_coords(lv_coord_t* x, lv_coord_t* y) +{ + // nothing needed +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +__attribute__((unused)) void platform_adjust_display_flush_area(lv_area_t *area) +{ + // nothing needed} +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +__attribute__((unused)) void platform_get_icon_coords(int16_t* dest, uint8_t max_entries) +{ + if (max_entries <= 8) + { + dest[0] = -168; + dest[1] = -126; + dest[2] = -84; + dest[3] = -42; + dest[4] = 0; + dest[5] = 42; + dest[6] = 84; + dest[7] = 126; + } +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +__attribute__((unused)) const lv_font_t* platform_get_toast_font(void) +{ + return &lv_font_montserrat_30; +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +__attribute__((unused)) uint16_t platform_get_toast_padding(void) +{ + return 25; +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +__attribute__((unused)) lv_dir_t platform_adjust_gesture(lv_dir_t gesture) +{ + // nothing special needed + return gesture; +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +void platform_init(i2c_master_bus_handle_t bus_handle, SemaphoreHandle_t I2CMutex, lv_disp_drv_t* pdisp_drv) +{ + __attribute__((unused)) esp_err_t ret = ESP_OK; + uint8_t touch_ok = 0; + I2CMutexHandle = I2CMutex; + disp_drv = pdisp_drv; + + ESP_LOGI(TAG, "Platform Init"); + + /* LCD initialization */ + ESP_LOGD(TAG, "Initialize SPI bus"); + const spi_bus_config_t buscfg = { + .sclk_io_num = POLAR_MAX_35_LCD_GPIO_SCLK, + .mosi_io_num = POLAR_MAX_35_LCD_GPIO_MOSI, + .miso_io_num = POLAR_MAX_35_LCD_GPIO_MISO, + .quadwp_io_num = GPIO_NUM_NC, + .quadhd_io_num = GPIO_NUM_NC, + // note here: this value needs to be: POLAR_MAX_35_LCD_H_RES * POLAR_MAX_35_LCD_DRAW_BUFF_HEIGHT * sizeof(uint16_t) + // however, the ESP framework uses multiples of 4092 for DMA (LLDESC_MAX_NUM_PER_DESC). + // this theoretical number is 5.8 times the DMA size, which gets rounded down and ends up too small. + // so instead, manually setting it to a little larger + .max_transfer_sz = 6 * LLDESC_MAX_NUM_PER_DESC, + }; + + if (spi_bus_initialize(POLAR_MAX_35_LCD_SPI_NUM, &buscfg, SPI_DMA_CH_AUTO) != ESP_OK) + { + ESP_LOGE(TAG, "Platform Init spi_bus_initialize() failed"); + } + + ESP_LOGD(TAG, "Install panel IO"); + const esp_lcd_panel_io_spi_config_t io_config = { + .dc_gpio_num = POLAR_MAX_35_LCD_GPIO_DC, + .cs_gpio_num = POLAR_MAX_35_LCD_GPIO_CS, + .pclk_hz = POLAR_MAX_35_LCD_PIXEL_CLK_HZ, + .lcd_cmd_bits = POLAR_MAX_35_LCD_CMD_BITS, + .lcd_param_bits = POLAR_MAX_35_LCD_PARAM_BITS, + .spi_mode = 0, + .trans_queue_depth = 5, + .on_color_trans_done = NULL, + .user_ctx = disp_drv, + }; + + if (esp_lcd_new_panel_io_spi((esp_lcd_spi_bus_handle_t)POLAR_MAX_35_LCD_SPI_NUM, &io_config, &lcd_io) != ESP_OK) + { + ESP_LOGE(TAG, "Platform Init esp_lcd_new_panel_io_spi() failed"); + } + + st7796_vendor_config_t vendor_config = + { + .init_cmds = lcd_init_cmds, + .init_cmds_size = sizeof(lcd_init_cmds) / sizeof(lcd_init_cmds[0]), + }; + + ESP_LOGD(TAG, "Install LCD driver"); + const esp_lcd_panel_dev_config_t panel_config = { + .reset_gpio_num = POLAR_MAX_35_LCD_GPIO_RST, + .rgb_ele_order = LCD_RGB_ELEMENT_ORDER_BGR, + .bits_per_pixel = POLAR_MAX_35_LCD_BITS_PER_PIXEL, + .vendor_config = &vendor_config, + }; + + if (esp_lcd_new_panel_st7796(lcd_io, &panel_config, &lcd_panel) != ESP_OK) + { + ESP_LOGE(TAG, "LCD panel create failed"); + } + + if (esp_lcd_panel_reset(lcd_panel) != ESP_OK) + { + ESP_LOGE(TAG, "LCD panel reset failed"); + } + + if (esp_lcd_panel_init(lcd_panel) != ESP_OK) + { + ESP_LOGE(TAG, "LCD panel init failed"); + } + + esp_lcd_panel_invert_color(lcd_panel, true); + esp_lcd_panel_disp_on_off(lcd_panel, true); + //esp_lcd_panel_swap_xy(lcd_panel, true); + //esp_lcd_panel_mirror(lcd_panel, false, true); + + ESP_LOGI(TAG, "Initialize LVGL library"); + lv_init(); + + void *buf1 = NULL; + void *buf2 = NULL; + ESP_LOGI(TAG, "Allocate separate LVGL draw buffers from PSRAM"); + buf1 = heap_caps_malloc(POLAR_MAX_35_LCD_H_RES * 32 * sizeof(lv_color_t), MALLOC_CAP_SPIRAM); + assert(buf1); + buf2 = heap_caps_malloc(POLAR_MAX_35_LCD_H_RES * 32 * sizeof(lv_color_t), MALLOC_CAP_SPIRAM); + assert(buf2); + lv_disp_draw_buf_init(&disp_buf, buf1, buf2, POLAR_MAX_35_LCD_H_RES * 32); + + ESP_LOGI(TAG, "Register display driver to LVGL"); + lv_disp_drv_init(disp_drv); + disp_drv->hor_res = POLAR_MAX_35_LCD_H_RES; + disp_drv->ver_res = POLAR_MAX_35_LCD_V_RES; + disp_drv->flush_cb = display_lvgl_flush_cb; + disp_drv->draw_buf = &disp_buf; + disp_drv->user_data = lcd_panel; + //?? disp_drv->sw_rotate = 1; + + lv_disp_t* __attribute__((unused)) disp = lv_disp_drv_register(disp_drv); + + // init LCD backlight + // Prepare and then apply the LEDC PWM timer configuration + ledc_timer_config_t ledc_timer = {}; + ledc_timer.speed_mode = POLAR_MAX_35_LCD_BL_LEDC_MODE, + ledc_timer.timer_num = POLAR_MAX_35_LCD_BL_LEDC_TIMER; + ledc_timer.duty_resolution = POLAR_MAX_35_LCD_BL_LEDC_DUTY_RES; + ledc_timer.freq_hz = POLAR_MAX_35_LCD_BL_LEDC_FREQUENCY; + ledc_timer.clk_cfg = LEDC_AUTO_CLK; + ledc_timer_config(&ledc_timer); + + // Prepare and then apply the LEDC PWM channel configuration + ledc_channel_config_t ledc_channel = {}; + ledc_channel.speed_mode = POLAR_MAX_35_LCD_BL_LEDC_MODE; + ledc_channel.channel = POLAR_MAX_35_LCD_BL_LEDC_CHANNEL; + ledc_channel.timer_sel = POLAR_MAX_35_LCD_BL_LEDC_TIMER; + ledc_channel.intr_type = LEDC_INTR_DISABLE; + ledc_channel.gpio_num = POLAR_MAX_35_LCD_GPIO_BL; + ledc_channel.duty = 0, // Set duty to 0% + ledc_channel.hpoint = 0; + ledc_channel_config(&ledc_channel); + + // set brightness + uint8_t brightness = 70; + uint32_t duty = (brightness * (POLAR_MAX_35_LCD_BL_LEDC_DUTY - 1)) / 100; + ledc_set_duty(POLAR_MAX_35_LCD_BL_LEDC_MODE, POLAR_MAX_35_LCD_BL_LEDC_CHANNEL, duty); + ledc_update_duty(POLAR_MAX_35_LCD_BL_LEDC_MODE, POLAR_MAX_35_LCD_BL_LEDC_CHANNEL); + + // init touch screen + const esp_lcd_panel_io_i2c_config_t tp_io_config = { + .dev_addr = ESP_LCD_TOUCH_IO_I2C_FT6336_ADDRESS, + .control_phase_bytes = 1, + .dc_bit_offset = 0, + .lcd_cmd_bits = 8, + .flags.disable_control_phase = 1, + .scl_speed_hz = 400 * 1000 + }; + + const esp_lcd_touch_config_t tp_cfg = { + .x_max = POLAR_MAX_35_LCD_H_RES, + .y_max = POLAR_MAX_35_LCD_V_RES, + .rst_gpio_num = GPIO_NUM_NC, + .int_gpio_num = GPIO_NUM_NC, + .interrupt_callback = touch_data_ready, + .flags = { + .swap_xy = 1, + .mirror_x = 0, + .mirror_y = 1, + }, + }; + + // Touch IO handle + if (esp_lcd_new_panel_io_i2c(bus_handle, &tp_io_config, &tp_io_handle) != ESP_OK) + { + ESP_LOGE(TAG, "Touch IO handle failed!"); + } + + // Initialize touch + ESP_LOGI(TAG, "Initialize touch controller FT6336"); + + if (xSemaphoreTake(I2CMutex, (TickType_t)10000) == pdTRUE) + { + ret = esp_lcd_touch_new_i2c_ft6336(tp_io_handle, &tp_cfg, &tp); + xSemaphoreGive(I2CMutex); + } + else + { + ESP_LOGE(TAG, "Initialize touch mutex timeout"); + } + + if (ret == ESP_OK) + { + ESP_LOGI(TAG, "Touch controller init OK"); + touch_ok = 1; + } + else + { + ESP_LOGW(TAG, "Touch controller init failed %s", esp_err_to_name(ret)); + } + + if (touch_ok) + { + lv_indev_drv_init(&indev_drv); + indev_drv.type = LV_INDEV_TYPE_POINTER; + indev_drv.disp = disp; + indev_drv.read_cb = display_lvgl_touch_cb; + indev_drv.user_data = tp; + + lv_indev_drv_register(&indev_drv); + } + + //to do + //if (control_get_config_item_int(CONFIG_ITEM_SCREEN_ROTATION) == SCREEN_ROTATION_180) + //{ + // disp_drv->rotated = LV_DISP_ROT_180; + + // can only do software rotation, with a drop in frame rate + // disp_drv->sw_rotate = 1; + //} +} + +#endif //CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_MAX_V2 \ No newline at end of file diff --git a/source/main/platform_pirate_pro_169.c b/source/main/platform_pirate_pro_169.c new file mode 100644 index 00000000..b0e0c5b9 --- /dev/null +++ b/source/main/platform_pirate_pro_169.c @@ -0,0 +1,350 @@ +/* + Copyright (C) 2025 Greg Smith + +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. + +*/ + +#include +#include "sdkconfig.h" +#include +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "freertos/semphr.h" +#include "esp_timer.h" +#include "esp_lcd_panel_ops.h" +#include "esp_lcd_panel_rgb.h" +#include "driver/gpio.h" +#include "esp_err.h" +#include "esp_system.h" +#include "esp_wifi.h" +#include "esp_event.h" +#include "esp_log.h" +#include "nvs_flash.h" +#include "driver/uart.h" +#include "driver/gpio.h" +#include "driver/spi_master.h" +#include "lvgl.h" +#include "demos/lv_demos.h" +#include "esp_lcd_panel_io.h" +#include "esp_lcd_panel_vendor.h" +#include "esp_lcd_panel_ops.h" +#include "esp_vfs.h" +#include "esp_vfs_fat.h" +#include "esp_ota_ops.h" +#include "sys/param.h" +#include "esp_wifi.h" +#include "esp_log.h" +#include "esp_mac.h" +#include "esp_crc.h" +#include "esp_now.h" +#include "driver/i2c.h" +#include "soc/lldesc.h" +#include "esp_lcd_touch_gt911.h" +#include "esp_lcd_touch_cst816s.h" +#include "esp_lcd_gc9107.h" +#include "esp_lcd_sh8601.h" +#include "esp_intr_alloc.h" +#include "main.h" +#if CONFIG_TONEX_CONTROLLER_HAS_DISPLAY + #include "ui.h" +#endif +#include "usb/usb_host.h" +#include "usb/cdc_acm_host.h" +#include "usb_comms.h" +#include "usb_tonex_common.h" +#include "usb_tonex_one.h" +#include "usb_tonex.h" +#include "display.h" +#include "CH422G.h" +#include "control.h" +#include "task_priorities.h" +#include "midi_control.h" +#include "LP5562.h" +#include "tonex_params.h" + +#if CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_PRO + +static const char *TAG = "platform_piratepro"; + +#define POLAR_PRO_240_280_LCD_H_RES (240) +#define POLAR_PRO_240_280_LCD_V_RES (280) + +/* LCD settings */ +#define POLAR_PRO_240_280_LCD_SPI_NUM (SPI3_HOST) +#define POLAR_PRO_240_280_LCD_PIXEL_CLK_HZ (40 * 1000 * 1000) +#define POLAR_PRO_240_280_LCD_CMD_BITS (8) +#define POLAR_PRO_240_280_LCD_PARAM_BITS (8) +#define POLAR_PRO_240_280_LCD_COLOR_SPACE (ESP_LCD_COLOR_SPACE_RGB) +#define POLAR_PRO_240_280_LCD_BITS_PER_PIXEL (16) +#define POLAR_PRO_240_280_LCD_DRAW_BUFF_DOUBLE (1) +#define POLAR_PRO_240_280_LCD_DRAW_BUFF_HEIGHT (50) +#define POLAR_PRO_240_280_LCD_BL_ON_LEVEL (1) + +static lv_disp_draw_buf_t disp_buf; // contains internal graphic buffer(s) called draw buffer(s) +static lv_disp_drv_t* disp_drv; // contains callback functions +static esp_lcd_panel_io_handle_t lcd_io = NULL; +static esp_lcd_panel_handle_t lcd_panel = NULL; +__attribute__((unused)) static esp_lcd_touch_handle_t tp = NULL; +__attribute__((unused)) static esp_lcd_panel_io_handle_t tp_io_handle = NULL; +__attribute__((unused)) static lv_indev_drv_t indev_drv; // Input device driver (Touch) + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +void platform_adjust_touch_coords(lv_coord_t* x, lv_coord_t* y) +{ + // nothing needed +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +__attribute__((unused)) void platform_adjust_display_flush_area(lv_area_t *area) +{ + // nothing needed} +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +__attribute__((unused)) void platform_get_icon_coords(int16_t* dest, uint8_t max_entries) +{ + // nothing needed +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +__attribute__((unused)) const lv_font_t* platform_get_toast_font(void) +{ + return &lv_font_montserrat_20; +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +__attribute__((unused)) uint16_t platform_get_toast_padding(void) +{ + return 10; +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +__attribute__((unused)) lv_dir_t platform_adjust_gesture(lv_dir_t gesture) +{ +#if CONFIG_TONEX_CONTROLLER_POLAR_PRO_169_LANDSCAPE + // landscape mode + if (gesture == LV_DIR_TOP) + { + return LV_DIR_LEFT; + } + else if (gesture == LV_DIR_BOTTOM) + { + return LV_DIR_RIGHT; + } +#endif + + // portrait, nothing special needed + return gesture; +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +void platform_init(i2c_master_bus_handle_t bus_handle, SemaphoreHandle_t I2CMutex, lv_disp_drv_t* pdisp_drv) +{ + __attribute__((unused)) esp_err_t ret = ESP_OK; + __attribute__((unused)) uint8_t touch_ok = 0; + gpio_config_t gpio_config_struct; + + ESP_LOGI(TAG, "Platform Init"); + + disp_drv = pdisp_drv; + + // LCD backlight + gpio_config_t bk_gpio_config = { + .mode = GPIO_MODE_OUTPUT, + .pin_bit_mask = 1ULL << POLAR_PRO_240_280_LCD_GPIO_BL}; + ESP_ERROR_CHECK(gpio_config(&bk_gpio_config)); + + /* LCD initialization */ + ESP_LOGD(TAG, "Initialize SPI bus"); + const spi_bus_config_t buscfg = { + .sclk_io_num = POLAR_PRO_240_280_LCD_GPIO_SCLK, + .mosi_io_num = POLAR_PRO_240_280_LCD_GPIO_MOSI, + .miso_io_num = GPIO_NUM_NC, + .quadwp_io_num = GPIO_NUM_NC, + .quadhd_io_num = GPIO_NUM_NC, + // note here: this value needs to be: POLAR_PRO_240_280_LCD_H_RES * POLAR_PRO_240_280_LCD_DRAW_BUFF_HEIGHT * sizeof(uint16_t) + // however, the ESP framework uses multiples of 4092 for DMA (LLDESC_MAX_NUM_PER_DESC). + // this theoretical number is 5.9 times the DMA size, which gets rounded down and ends up too small. + // so instead, manually setting it to a little larger + .max_transfer_sz = 6 * LLDESC_MAX_NUM_PER_DESC, + }; + spi_bus_initialize(POLAR_PRO_240_280_LCD_SPI_NUM, &buscfg, SPI_DMA_CH_AUTO); + + ESP_LOGD(TAG, "Install panel IO"); + const esp_lcd_panel_io_spi_config_t io_config = { + .dc_gpio_num = POLAR_PRO_240_280_LCD_GPIO_DC, + .cs_gpio_num = POLAR_PRO_240_280_LCD_GPIO_CS, + .pclk_hz = POLAR_PRO_240_280_LCD_PIXEL_CLK_HZ, + .lcd_cmd_bits = POLAR_PRO_240_280_LCD_CMD_BITS, + .lcd_param_bits = POLAR_PRO_240_280_LCD_PARAM_BITS, + .spi_mode = 0, + .trans_queue_depth = 10, + }; + esp_lcd_new_panel_io_spi((esp_lcd_spi_bus_handle_t)POLAR_PRO_240_280_LCD_SPI_NUM, &io_config, &lcd_io); + + ESP_LOGD(TAG, "Install LCD driver"); + const esp_lcd_panel_dev_config_t panel_config = { + .reset_gpio_num = POLAR_PRO_240_280_LCD_GPIO_RST, + .color_space = POLAR_PRO_240_280_LCD_COLOR_SPACE, + .bits_per_pixel = POLAR_PRO_240_280_LCD_BITS_PER_PIXEL, + }; + esp_lcd_new_panel_st7789(lcd_io, &panel_config, &lcd_panel); + + esp_lcd_panel_reset(lcd_panel); + esp_lcd_panel_init(lcd_panel); + esp_lcd_panel_mirror(lcd_panel, true, true); + esp_lcd_panel_disp_on_off(lcd_panel, true); + + // LCD backlight on + gpio_set_level(POLAR_PRO_240_280_LCD_GPIO_BL, POLAR_PRO_240_280_LCD_BL_ON_LEVEL); + + esp_lcd_panel_set_gap(lcd_panel, 0, 20); + esp_lcd_panel_invert_color(lcd_panel, true); + + ESP_LOGI(TAG, "Initialize LVGL library"); + lv_init(); + + void *buf1 = NULL; + void *buf2 = NULL; + ESP_LOGI(TAG, "Allocate separate LVGL draw buffers from PSRAM"); + buf1 = heap_caps_malloc(POLAR_PRO_240_280_LCD_H_RES * 32 * sizeof(lv_color_t), MALLOC_CAP_SPIRAM); + assert(buf1); + buf2 = heap_caps_malloc(POLAR_PRO_240_280_LCD_H_RES * 32 * sizeof(lv_color_t), MALLOC_CAP_SPIRAM); + assert(buf2); + lv_disp_draw_buf_init(&disp_buf, buf1, buf2, POLAR_PRO_240_280_LCD_H_RES * 32); + + ESP_LOGI(TAG, "Register display driver to LVGL"); + lv_disp_drv_init(disp_drv); + disp_drv->hor_res = POLAR_PRO_240_280_LCD_H_RES; + disp_drv->ver_res = POLAR_PRO_240_280_LCD_V_RES; + disp_drv->flush_cb = display_lvgl_flush_cb; + disp_drv->draw_buf = &disp_buf; + disp_drv->user_data = lcd_panel; + + lv_disp_t* __attribute__((unused)) disp = lv_disp_drv_register(disp_drv); + +#if CONFIG_TONEX_CONTROLLER_HAS_TOUCH + // init touch screen + const esp_lcd_panel_io_i2c_config_t tp_io_config = ESP_LCD_TOUCH_IO_I2C_CST816S_CONFIG(); + + const esp_lcd_touch_config_t tp_cfg = { + .x_max = POLAR_PRO_240_280_LCD_H_RES, + .y_max = POLAR_PRO_240_280_LCD_V_RES, + .rst_gpio_num = TOUCH_RESET, + .int_gpio_num = TOUCH_INT, + .interrupt_callback = touch_data_ready, + .levels = { + .reset = 0, + .interrupt = 0, + }, + .flags = { + .swap_xy = 0, + .mirror_x = 1, + .mirror_y = 0, + }, + }; + + // Touch IO handle + if (esp_lcd_new_panel_io_i2c(bus_handle, &tp_io_config, &tp_io_handle) != ESP_OK) + { + ESP_LOGE(TAG, "Touch IO handle failed!"); + } + + // Initialize touch + ESP_LOGI(TAG, "Initialize touch controller CST816"); + + if (xSemaphoreTake(I2CMutex, (TickType_t)10000) == pdTRUE) + { + ret = esp_lcd_touch_new_i2c_cst816s(tp_io_handle, &tp_cfg, &tp); + xSemaphoreGive(I2CMutex); + } + else + { + ESP_LOGE(TAG, "Initialize touch mutex timeout"); + } + + if (ret == ESP_OK) + { + ESP_LOGI(TAG, "Touch controller init OK"); + touch_ok = 1; + } + else + { + ESP_LOGW(TAG, "Touch controller init failed %s", esp_err_to_name(ret)); + } + + if (touch_ok) + { + lv_indev_drv_init(&indev_drv); + indev_drv.type = LV_INDEV_TYPE_POINTER; + indev_drv.disp = disp; + indev_drv.read_cb = display_lvgl_touch_cb; + indev_drv.user_data = tp; + + lv_indev_drv_register(&indev_drv); + } +#endif // TONEX_CONTROLLER_HAS_TOUCH + + if (control_get_config_item_int(CONFIG_ITEM_SCREEN_ROTATION) == SCREEN_ROTATION_180) + { + disp_drv->rotated = LV_DISP_ROT_180; + + // can only do software rotation, with a drop in frame rate + disp_drv->sw_rotate = 1; + } +} + +#endif //CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_PRO \ No newline at end of file diff --git a/source/main/ui_generated_480x320land/screens.c b/source/main/ui_generated_480x320land/screens.c index 39282098..10ba5c62 100644 --- a/source/main/ui_generated_480x320land/screens.c +++ b/source/main/ui_generated_480x320land/screens.c @@ -256,53 +256,6 @@ void create_screen_screen1() { lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_MAIN | LV_STATE_DEFAULT); lv_obj_set_style_bg_opa(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); } - { - // ui_LeftArrow - lv_obj_t *obj = lv_img_create(parent_obj); - objects.ui_left_arrow = obj; - lv_obj_set_pos(obj, 6, 90); - lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); - lv_img_set_src(obj, &img_arrow_left); - lv_img_set_zoom(obj, 192); - lv_obj_add_event_cb(obj, action_amp_skin_previous, LV_EVENT_PRESSED, (void *)0); - lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN|LV_OBJ_FLAG_CLICKABLE); - lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); - } - { - // ui_RightArrow - lv_obj_t *obj = lv_img_create(parent_obj); - objects.ui_right_arrow = obj; - lv_obj_set_pos(obj, 397, 90); - lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); - lv_img_set_src(obj, &img_arrow_right); - lv_img_set_zoom(obj, 192); - lv_obj_add_event_cb(obj, action_amp_skin_next, LV_EVENT_PRESSED, (void *)0); - lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN|LV_OBJ_FLAG_CLICKABLE); - lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); - } - { - // ui_EntryKeyboard - lv_obj_t *obj = lv_keyboard_create(parent_obj); - objects.ui_entry_keyboard = obj; - lv_obj_set_pos(obj, 0, 0); - lv_obj_set_size(obj, 480, 183); - lv_obj_add_event_cb(obj, action_keyboard_ok, LV_EVENT_READY, (void *)0); - lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN); - lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); - lv_obj_set_style_align(obj, LV_ALIGN_DEFAULT, LV_PART_MAIN | LV_STATE_DEFAULT); - } - { - // ui_OKTick - lv_obj_t *obj = lv_img_create(parent_obj); - objects.ui_ok_tick = obj; - lv_obj_set_pos(obj, 197, 258); - lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); - lv_img_set_src(obj, &img_tick); - lv_img_set_zoom(obj, 192); - lv_obj_add_event_cb(obj, action_save_skin_edit, LV_EVENT_PRESSED, (void *)0); - lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN|LV_OBJ_FLAG_CLICKABLE); - lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); - } { // ui_BottomPanelTonex lv_obj_t *obj = lv_obj_create(parent_obj); @@ -568,6 +521,53 @@ void create_screen_screen1() { } } } + { + // ui_LeftArrow + lv_obj_t *obj = lv_img_create(parent_obj); + objects.ui_left_arrow = obj; + lv_obj_set_pos(obj, 6, 90); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_img_set_src(obj, &img_arrow_left); + lv_img_set_zoom(obj, 192); + lv_obj_add_event_cb(obj, action_amp_skin_previous, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN|LV_OBJ_FLAG_CLICKABLE); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + } + { + // ui_RightArrow + lv_obj_t *obj = lv_img_create(parent_obj); + objects.ui_right_arrow = obj; + lv_obj_set_pos(obj, 397, 90); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_img_set_src(obj, &img_arrow_right); + lv_img_set_zoom(obj, 192); + lv_obj_add_event_cb(obj, action_amp_skin_next, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN|LV_OBJ_FLAG_CLICKABLE); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + } + { + // ui_EntryKeyboard + lv_obj_t *obj = lv_keyboard_create(parent_obj); + objects.ui_entry_keyboard = obj; + lv_obj_set_pos(obj, 0, 0); + lv_obj_set_size(obj, 480, 183); + lv_obj_add_event_cb(obj, action_keyboard_ok, LV_EVENT_READY, (void *)0); + lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_align(obj, LV_ALIGN_DEFAULT, LV_PART_MAIN | LV_STATE_DEFAULT); + } + { + // ui_OKTick + lv_obj_t *obj = lv_img_create(parent_obj); + objects.ui_ok_tick = obj; + lv_obj_set_pos(obj, 197, 258); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_img_set_src(obj, &img_tick); + lv_img_set_zoom(obj, 192); + lv_obj_add_event_cb(obj, action_save_skin_edit, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN|LV_OBJ_FLAG_CLICKABLE); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + } } } } @@ -2470,12 +2470,2731 @@ void create_screen_settings() { void tick_screen_settings() { } +void create_screen_val_settings() { + lv_obj_t *obj = lv_obj_create(0); + objects.val_settings = obj; + lv_obj_set_pos(obj, 0, 0); + lv_obj_set_size(obj, 480, 320); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValSettingsTabView + lv_obj_t *obj = lv_tabview_create(parent_obj, LV_DIR_TOP, 52); + objects.ui_val_settings_tab_view = obj; + lv_obj_set_pos(obj, 5, 5); + lv_obj_set_size(obj, 480, 320); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_outline_color(obj, lv_color_hex(0xff3b3c40), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_outline_width(obj, 3, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(obj, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_opa(obj, 255, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_CHECKED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_tabview_get_tab_btns(parent_obj); + objects.obj7 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff2a2a2a), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_color(obj, lv_color_hex(0xffffffff), LV_PART_ITEMS | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_ITEMS | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_ITEMS | LV_STATE_DEFAULT); + lv_obj_set_style_border_side(obj, LV_BORDER_SIDE_LEFT, LV_PART_ITEMS | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff96969e), LV_PART_ITEMS | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff2196f3), LV_PART_ITEMS | LV_STATE_CHECKED); + } + { + // ui_ValNRTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "NR"); + objects.ui_val_nr_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffafafa), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_side(obj, LV_BORDER_SIDE_LEFT, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_PRESSED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValNRBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_block_label = obj; + lv_obj_set_pos(obj, 4, -110); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValNRBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_nr_block_switch = obj; + lv_obj_set_pos(obj, 113, -109); + lv_obj_set_size(obj, 60, 24); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValNRModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_nr_model_dropdown = obj; + lv_obj_set_pos(obj, 298, 1); + lv_obj_set_size(obj, 165, 38); + lv_dropdown_set_options(obj, "Noise Gate"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj8 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValNRParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param0_label = obj; + lv_obj_set_pos(obj, 4, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValNRParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_nr_param0_slider = obj; + lv_obj_set_pos(obj, 113, -72); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNRParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param0_value = obj; + lv_obj_set_pos(obj, 417, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNRParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param1_label = obj; + lv_obj_set_pos(obj, 4, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValNRParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_nr_param1_slider = obj; + lv_obj_set_pos(obj, 113, -34); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNRParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param1_value = obj; + lv_obj_set_pos(obj, 417, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNRParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param2_label = obj; + lv_obj_set_pos(obj, 4, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValNRParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_nr_param2_slider = obj; + lv_obj_set_pos(obj, 113, 4); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNRParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param2_value = obj; + lv_obj_set_pos(obj, 417, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNRParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param3_label = obj; + lv_obj_set_pos(obj, 4, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValNRParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_nr_param3_slider = obj; + lv_obj_set_pos(obj, 113, 42); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNRParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param3_value = obj; + lv_obj_set_pos(obj, 417, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNRParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param4_label = obj; + lv_obj_set_pos(obj, 4, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValNRParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_nr_param4_slider = obj; + lv_obj_set_pos(obj, 113, 80); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNRParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_nr_param4_value = obj; + lv_obj_set_pos(obj, 417, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValPreTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Pre"); + objects.ui_val_pre_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValNPreBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_npre_block_label = obj; + lv_obj_set_pos(obj, 4, -110); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValPreBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_pre_block_switch = obj; + lv_obj_set_pos(obj, 113, -110); + lv_obj_set_size(obj, 60, 24); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValPreModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_pre_model_dropdown = obj; + lv_obj_set_pos(obj, 298, 1); + lv_obj_set_size(obj, 165, 38); + lv_dropdown_set_options(obj, "Comp\nComp4\nBoost\nMicro Boost\nB-Boost\nToucher\nCrier\nOcta\nPitch\nDetune"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj9 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValPreParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param0_label = obj; + lv_obj_set_pos(obj, 4, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValPreParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_pre_param0_slider = obj; + lv_obj_set_pos(obj, 113, -72); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValPreParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param0_value = obj; + lv_obj_set_pos(obj, 417, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValPreParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param1_label = obj; + lv_obj_set_pos(obj, 4, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValPreParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_pre_param1_slider = obj; + lv_obj_set_pos(obj, 113, -34); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValPreParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param1_value = obj; + lv_obj_set_pos(obj, 417, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValPreParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param2_label = obj; + lv_obj_set_pos(obj, 4, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValPreParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_pre_param2_slider = obj; + lv_obj_set_pos(obj, 113, 4); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValPreParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param2_value = obj; + lv_obj_set_pos(obj, 417, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValPreParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param3_label = obj; + lv_obj_set_pos(obj, 4, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValPreParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_pre_param3_slider = obj; + lv_obj_set_pos(obj, 113, 42); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValPreParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param3_value = obj; + lv_obj_set_pos(obj, 417, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValPreParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param4_label = obj; + lv_obj_set_pos(obj, 4, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValPreParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_pre_param4_slider = obj; + lv_obj_set_pos(obj, 113, 80); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValPreParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_pre_param4_value = obj; + lv_obj_set_pos(obj, 417, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValDstTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Dst"); + objects.ui_val_dst_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValDstBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_block_label = obj; + lv_obj_set_pos(obj, 4, -110); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValDstBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_dst_block_switch = obj; + lv_obj_set_pos(obj, 113, -110); + lv_obj_set_size(obj, 60, 24); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValDstModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_dst_model_dropdown = obj; + lv_obj_set_pos(obj, 298, 1); + lv_obj_set_size(obj, 165, 38); + lv_dropdown_set_options(obj, "Green OD\nYellow OD\nSuper OD\nSM Dist\nPlustortion\nLa Charger\nDarktale\nSora Fuzz\nRed Haze\nBass OD"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj10 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValDstParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param0_label = obj; + lv_obj_set_pos(obj, 4, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValDstParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dst_param0_slider = obj; + lv_obj_set_pos(obj, 113, -72); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDstParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param0_value = obj; + lv_obj_set_pos(obj, 417, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDstParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param1_label = obj; + lv_obj_set_pos(obj, 4, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValDstParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dst_param1_slider = obj; + lv_obj_set_pos(obj, 113, -34); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDstParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param1_value = obj; + lv_obj_set_pos(obj, 417, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDstParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param2_label = obj; + lv_obj_set_pos(obj, 4, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValDstParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dst_param2_slider = obj; + lv_obj_set_pos(obj, 113, 4); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDstParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param2_value = obj; + lv_obj_set_pos(obj, 417, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDstParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param3_label = obj; + lv_obj_set_pos(obj, 4, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValDstParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dst_param3_slider = obj; + lv_obj_set_pos(obj, 113, 42); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDstParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param3_value = obj; + lv_obj_set_pos(obj, 417, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDstParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param4_label = obj; + lv_obj_set_pos(obj, 4, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValDstParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dst_param4_slider = obj; + lv_obj_set_pos(obj, 113, 80); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDstParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dst_param4_value = obj; + lv_obj_set_pos(obj, 417, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValAmpTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Amp"); + objects.ui_val_amp_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValAmpBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_block_label = obj; + lv_obj_set_pos(obj, 4, -110); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValAmpBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_amp_block_switch = obj; + lv_obj_set_pos(obj, 113, -110); + lv_obj_set_size(obj, 60, 24); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValAmpModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_amp_model_dropdown = obj; + lv_obj_set_pos(obj, 298, 1); + lv_obj_set_size(obj, 165, 38); + lv_dropdown_set_options(obj, "Tweedy\nBellman 59N\nDark Twin\nFoxy 30N\nJ-120 CL\nMatch CL\nL-Star CL\nUK 45\nUK 50JP\nUK 800\nBellman 59B\nFoxy 30TB\nSup Dual OD\nSolo100 OD\nZ38 OD\nBad KT OD\nJuiceW R100\nDizz VH\nDizz VH+\nEagle 120\nEV51\nSolo100 LD\nMess Dual V\nMess Dual M\nPower LD\nFlagman+\nBog Red V\nClassic Bass\nFoxy Bass\nMess Bass\nAC Pre 1\nAC Pre 2\n"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj11 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValAmpParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param0_label = obj; + lv_obj_set_pos(obj, 4, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValAmpParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_amp_param0_slider = obj; + lv_obj_set_pos(obj, 113, -72); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValAmpParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param0_value = obj; + lv_obj_set_pos(obj, 417, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValAmpParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param1_label = obj; + lv_obj_set_pos(obj, 4, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValAmpParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_amp_param1_slider = obj; + lv_obj_set_pos(obj, 113, -34); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValAmpParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param1_value = obj; + lv_obj_set_pos(obj, 417, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValAmpParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param2_label = obj; + lv_obj_set_pos(obj, 4, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValAmpParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_amp_param2_slider = obj; + lv_obj_set_pos(obj, 113, 4); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValAmpParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param2_value = obj; + lv_obj_set_pos(obj, 417, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValAmpParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param3_label = obj; + lv_obj_set_pos(obj, 4, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValAmpParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_amp_param3_slider = obj; + lv_obj_set_pos(obj, 113, 42); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValAmpParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param3_value = obj; + lv_obj_set_pos(obj, 417, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValAmpParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param4_label = obj; + lv_obj_set_pos(obj, 4, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValAmpParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_amp_param4_slider = obj; + lv_obj_set_pos(obj, 113, 80); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValAmpParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_amp_param4_value = obj; + lv_obj_set_pos(obj, 417, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValCabTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Cab"); + objects.ui_val_cab_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValCabBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_block_label = obj; + lv_obj_set_pos(obj, 4, -110); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValCabBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_cab_block_switch = obj; + lv_obj_set_pos(obj, 113, -110); + lv_obj_set_size(obj, 60, 24); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValCabModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_cab_model_dropdown = obj; + lv_obj_set_pos(obj, 298, 1); + lv_obj_set_size(obj, 165, 38); + lv_dropdown_set_options(obj, "Twd CP\nDark VIT\nFoxy 1x12\nL-Star 1x12\nDark CS 2x12\nDark Twin 2x12\nSup Star 2x12\nJ-120 2x12\nFoxy 2x12\nUK Grn 2x12\nUK Grn 4x12\nBog 4x12\nDizz 4x12\nEV 4x12\nSolo 4x12\nMess 4x12\nEagle 4x12\nJuice 4x12\nBellman 2x12\nAmpg 4x10"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj12 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValCabParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param0_label = obj; + lv_obj_set_pos(obj, 4, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValCabParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_cab_param0_slider = obj; + lv_obj_set_pos(obj, 113, -72); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValCabParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param0_value = obj; + lv_obj_set_pos(obj, 417, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValCabParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param1_label = obj; + lv_obj_set_pos(obj, 4, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValCabParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_cab_param1_slider = obj; + lv_obj_set_pos(obj, 113, -34); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValCabParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param1_value = obj; + lv_obj_set_pos(obj, 417, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValCabParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param2_label = obj; + lv_obj_set_pos(obj, 4, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValCabParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_cab_param2_slider = obj; + lv_obj_set_pos(obj, 113, 4); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValCabParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param2_value = obj; + lv_obj_set_pos(obj, 417, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValCabParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param3_label = obj; + lv_obj_set_pos(obj, 4, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValCabParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_cab_param3_slider = obj; + lv_obj_set_pos(obj, 113, 42); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValCabParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param3_value = obj; + lv_obj_set_pos(obj, 417, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValCabParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param4_label = obj; + lv_obj_set_pos(obj, 4, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValCabParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_cab_param4_slider = obj; + lv_obj_set_pos(obj, 113, 80); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValCabParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_cab_param4_value = obj; + lv_obj_set_pos(obj, 417, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValEQTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "EQ"); + objects.ui_val_eq_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValEQBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_block_label = obj; + lv_obj_set_pos(obj, 4, -110); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValEQBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_eq_block_switch = obj; + lv_obj_set_pos(obj, 113, -110); + lv_obj_set_size(obj, 60, 24); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValEQModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_eq_model_dropdown = obj; + lv_obj_set_pos(obj, 298, 1); + lv_obj_set_size(obj, 165, 38); + lv_dropdown_set_options(obj, "Guitar 1\nGuitar 2\nBass 1\nBass 2\nMess"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj13 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValEQParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param0_label = obj; + lv_obj_set_pos(obj, 4, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValEQParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_eq_param0_slider = obj; + lv_obj_set_pos(obj, 113, -72); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValEQParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param0_value = obj; + lv_obj_set_pos(obj, 417, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValEQParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param1_label = obj; + lv_obj_set_pos(obj, 4, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValEQParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_eq_param1_slider = obj; + lv_obj_set_pos(obj, 113, -34); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValEQParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param1_value = obj; + lv_obj_set_pos(obj, 417, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValEQParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param2_label = obj; + lv_obj_set_pos(obj, 4, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValEQParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_eq_param2_slider = obj; + lv_obj_set_pos(obj, 113, 4); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValEQParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param2_value = obj; + lv_obj_set_pos(obj, 417, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValEQParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param3_label = obj; + lv_obj_set_pos(obj, 4, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValEQParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_eq_param3_slider = obj; + lv_obj_set_pos(obj, 113, 42); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValEQParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param3_value = obj; + lv_obj_set_pos(obj, 417, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValEQParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param4_label = obj; + lv_obj_set_pos(obj, 4, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValEQParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_eq_param4_slider = obj; + lv_obj_set_pos(obj, 113, 80); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValEQParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_eq_param4_value = obj; + lv_obj_set_pos(obj, 417, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValModTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Mod"); + objects.ui_val_mod_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValModBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_block_label = obj; + lv_obj_set_pos(obj, 4, -110); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValModBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_mod_block_switch = obj; + lv_obj_set_pos(obj, 113, -110); + lv_obj_set_size(obj, 60, 24); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValModModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_mod_model_dropdown = obj; + lv_obj_set_pos(obj, 298, 1); + lv_obj_set_size(obj, 165, 38); + lv_dropdown_set_options(obj, "A-Chorus\nB-Chorus\nJet\nN-Jet\nO-Phase\nM-Vibe\nV-Roto\nVibrato\nO-Trem\nSine Trem\nBias Trem"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj14 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValModParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param0_label = obj; + lv_obj_set_pos(obj, 4, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValModParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_mod_param0_slider = obj; + lv_obj_set_pos(obj, 113, -72); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValModParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param0_value = obj; + lv_obj_set_pos(obj, 417, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValModParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param1_label = obj; + lv_obj_set_pos(obj, 4, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValModParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_mod_param1_slider = obj; + lv_obj_set_pos(obj, 113, -34); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValModParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param1_value = obj; + lv_obj_set_pos(obj, 417, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValModParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param2_label = obj; + lv_obj_set_pos(obj, 4, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValModParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_mod_param2_slider = obj; + lv_obj_set_pos(obj, 113, 4); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValModParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param2_value = obj; + lv_obj_set_pos(obj, 417, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValModParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param3_label = obj; + lv_obj_set_pos(obj, 4, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValModParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_mod_param3_slider = obj; + lv_obj_set_pos(obj, 113, 42); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValModParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param3_value = obj; + lv_obj_set_pos(obj, 417, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValModParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param4_label = obj; + lv_obj_set_pos(obj, 4, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValModParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_mod_param4_slider = obj; + lv_obj_set_pos(obj, 113, 80); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValModParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_mod_param4_value = obj; + lv_obj_set_pos(obj, 417, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValDlyTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Dly"); + objects.ui_val_dly_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValDlyBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_block_label = obj; + lv_obj_set_pos(obj, 4, -110); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValDlyBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_dly_block_switch = obj; + lv_obj_set_pos(obj, 113, -110); + lv_obj_set_size(obj, 60, 24); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValDlyModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_dly_model_dropdown = obj; + lv_obj_set_pos(obj, 298, 1); + lv_obj_set_size(obj, 165, 38); + lv_dropdown_set_options(obj, "Pure\nAnalog\nSlapback\nSweet Echo\nTape\nTube\nRev Echo\nRing Echo\nSweep Echo\nPing Pong"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj15 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValDlyParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param0_label = obj; + lv_obj_set_pos(obj, 4, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValDlyParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dly_param0_slider = obj; + lv_obj_set_pos(obj, 113, -72); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDlyParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param0_value = obj; + lv_obj_set_pos(obj, 417, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDlyParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param1_label = obj; + lv_obj_set_pos(obj, 4, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValDlyParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dly_param1_slider = obj; + lv_obj_set_pos(obj, 113, -34); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDlyParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param1_value = obj; + lv_obj_set_pos(obj, 417, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDlyParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param2_label = obj; + lv_obj_set_pos(obj, 4, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValDlyParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dly_param2_slider = obj; + lv_obj_set_pos(obj, 113, 4); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDlyParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param2_value = obj; + lv_obj_set_pos(obj, 417, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDlyParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param3_label = obj; + lv_obj_set_pos(obj, 4, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValDlyParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dly_param3_slider = obj; + lv_obj_set_pos(obj, 113, 42); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDlyParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param3_value = obj; + lv_obj_set_pos(obj, 417, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValDlyParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param4_label = obj; + lv_obj_set_pos(obj, 4, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValDlyParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_dly_param4_slider = obj; + lv_obj_set_pos(obj, 113, 80); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValDlyParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_dly_param4_value = obj; + lv_obj_set_pos(obj, 417, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValRvbTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Rvb"); + objects.ui_val_rvb_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValRvbBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_block_label = obj; + lv_obj_set_pos(obj, 4, -110); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValRvbBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_rvb_block_switch = obj; + lv_obj_set_pos(obj, 113, -110); + lv_obj_set_size(obj, 60, 24); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValRvbModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_rvb_model_dropdown = obj; + lv_obj_set_pos(obj, 298, 1); + lv_obj_set_size(obj, 165, 38); + lv_dropdown_set_options(obj, "Air\nRoom\nHall\nChurch\nPlate L\nPlate\nSpring\nN-Star\nDeepsea\nSweet Space"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj16 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValRvbParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param0_label = obj; + lv_obj_set_pos(obj, 4, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValRvbParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_rvb_param0_slider = obj; + lv_obj_set_pos(obj, 113, -72); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValRvbParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param0_value = obj; + lv_obj_set_pos(obj, 417, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValRvbParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param1_label = obj; + lv_obj_set_pos(obj, 4, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValRvbParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_rvb_param1_slider = obj; + lv_obj_set_pos(obj, 113, -34); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValRvbParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param1_value = obj; + lv_obj_set_pos(obj, 417, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValRvbParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param2_label = obj; + lv_obj_set_pos(obj, 4, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValRvbParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_rvb_param2_slider = obj; + lv_obj_set_pos(obj, 113, 4); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValRvbParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param2_value = obj; + lv_obj_set_pos(obj, 417, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValRvbParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param3_label = obj; + lv_obj_set_pos(obj, 4, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValRvbParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_rvb_param3_slider = obj; + lv_obj_set_pos(obj, 113, 42); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValRvbParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param3_value = obj; + lv_obj_set_pos(obj, 417, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValRvbParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param4_label = obj; + lv_obj_set_pos(obj, 4, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValRvbParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_rvb_param4_slider = obj; + lv_obj_set_pos(obj, 113, 80); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValRvbParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_rvb_param4_value = obj; + lv_obj_set_pos(obj, 417, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValNSTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "NS"); + objects.ui_val_ns_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValNSBlockLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_block_label = obj; + lv_obj_set_pos(obj, 4, -110); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Enable"); + } + { + // ui_ValNSBlockSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_ns_block_switch = obj; + lv_obj_set_pos(obj, 113, -110); + lv_obj_set_size(obj, 60, 24); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValNSModelDropdown + lv_obj_t *obj = lv_dropdown_create(parent_obj); + objects.ui_val_ns_model_dropdown = obj; + lv_obj_set_pos(obj, 298, 1); + lv_obj_set_size(obj, 165, 38); + lv_dropdown_set_options(obj, "Todo"); + lv_dropdown_set_selected(obj, 0); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_SELECTED | LV_STATE_CHECKED | LV_STATE_PRESSED); + { + lv_obj_t *parent_obj = obj; + { + lv_obj_t *obj = lv_dropdown_get_list(parent_obj); + objects.obj17 = obj; + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_SELECTED | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_SELECTED | LV_STATE_CHECKED); + } + } + } + { + // ui_ValNSParam0Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param0_label = obj; + lv_obj_set_pos(obj, 4, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param0"); + } + { + // ui_ValNSParam0Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_ns_param0_slider = obj; + lv_obj_set_pos(obj, 113, -72); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNSParam0Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param0_value = obj; + lv_obj_set_pos(obj, 417, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNSParam1Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param1_label = obj; + lv_obj_set_pos(obj, 4, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param1"); + } + { + // ui_ValNSParam1Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_ns_param1_slider = obj; + lv_obj_set_pos(obj, 113, -34); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNSParam1Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param1_value = obj; + lv_obj_set_pos(obj, 417, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNSParam2Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param2_label = obj; + lv_obj_set_pos(obj, 4, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param2"); + } + { + // ui_ValNSParam2Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_ns_param2_slider = obj; + lv_obj_set_pos(obj, 113, 4); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNSParam2Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param2_value = obj; + lv_obj_set_pos(obj, 413, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNSParam3Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param3_label = obj; + lv_obj_set_pos(obj, 4, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param3"); + } + { + // ui_ValNSParam3Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_ns_param3_slider = obj; + lv_obj_set_pos(obj, 113, 42); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNSParam3Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param3_value = obj; + lv_obj_set_pos(obj, 413, 42); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + { + // ui_ValNSParam4Label + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param4_label = obj; + lv_obj_set_pos(obj, 4, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Param4"); + } + { + // ui_ValNSParam4Slider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_ns_param4_slider = obj; + lv_obj_set_pos(obj, 113, 80); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValNSParam4Value + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_ns_param4_value = obj; + lv_obj_set_pos(obj, 417, 80); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + { + // ui_ValGlobTab + lv_obj_t *obj = lv_tabview_add_tab(parent_obj, "Glob"); + objects.ui_val_glob_tab = obj; + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_scrollbar_mode(obj, LV_SCROLLBAR_MODE_OFF); + lv_obj_set_style_text_color(obj, lv_color_hex(0xfffb9230), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff513d2b), LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_CHECKED); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_top(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_bottom(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_left(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_right(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_row(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_pad_column(obj, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(obj, lv_color_hex(0xff373737), LV_PART_MAIN | LV_STATE_DEFAULT); + { + lv_obj_t *parent_obj = obj; + { + // ui_ValGlobNoCabLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_glob_no_cab_label = obj; + lv_obj_set_pos(obj, 4, -110); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE|LV_OBJ_FLAG_SCROLL_CHAIN_HOR|LV_OBJ_FLAG_SCROLL_CHAIN_VER|LV_OBJ_FLAG_SCROLL_ELASTIC|LV_OBJ_FLAG_SCROLL_MOMENTUM|LV_OBJ_FLAG_SCROLL_WITH_ARROW); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_align(obj, LV_TEXT_ALIGN_AUTO, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "No Cab"); + } + { + // ui_ValGlobNoCabSwitch + lv_obj_t *obj = lv_switch_create(parent_obj); + objects.ui_val_glob_no_cab_switch = obj; + lv_obj_set_pos(obj, 113, -110); + lv_obj_set_size(obj, 60, 24); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_CHECKED); + } + { + // ui_ValGlobInputLevelLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_glob_input_level_label = obj; + lv_obj_set_pos(obj, 4, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Input Level"); + } + { + // ui_ValGlobInputLevelSlider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_glob_input_level_slider = obj; + lv_obj_set_pos(obj, 113, -72); + lv_obj_set_size(obj, 290, 15); + lv_slider_set_range(obj, -100, -20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValGlobInputLevelValue + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_glob_input_level_value = obj; + lv_obj_set_pos(obj, 417, -72); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } + } + } + } + } + { + // ui_ValCloseimage + lv_obj_t *obj = lv_img_create(parent_obj); + objects.ui_val_closeimage = obj; + lv_obj_set_pos(obj, 202, 266); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_img_set_src(obj, &img_tick); + lv_img_set_zoom(obj, 120); + lv_obj_add_event_cb(obj, action_close_settings_page, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + } + } + + tick_screen_val_settings(); +} + +void tick_screen_val_settings() { +} + typedef void (*tick_screen_func_t)(); tick_screen_func_t tick_screen_funcs[] = { tick_screen_screen1, tick_screen_settings, + tick_screen_val_settings, }; void tick_screen(int screen_index) { tick_screen_funcs[screen_index](); @@ -2491,4 +5210,5 @@ void create_screens() { create_screen_screen1(); create_screen_settings(); + create_screen_val_settings(); } diff --git a/source/main/ui_generated_480x320land/screens.h b/source/main/ui_generated_480x320land/screens.h index 0f66b278..4199ddd4 100644 --- a/source/main/ui_generated_480x320land/screens.h +++ b/source/main/ui_generated_480x320land/screens.h @@ -10,6 +10,7 @@ extern "C" { typedef struct _objects_t { lv_obj_t *screen1; lv_obj_t *settings; + lv_obj_t *val_settings; lv_obj_t *ui_touch_gesture_container; lv_obj_t *ui_top_panel; lv_obj_t *ui_usb_status_fail; @@ -29,10 +30,6 @@ typedef struct _objects_t { lv_obj_t *ui_bpm_value_label; lv_obj_t *ui_bpm_indicator; lv_obj_t *ui_preset_details_text_area; - lv_obj_t *ui_left_arrow; - lv_obj_t *ui_right_arrow; - lv_obj_t *ui_entry_keyboard; - lv_obj_t *ui_ok_tick; lv_obj_t *ui_bottom_panel_tonex; lv_obj_t *ui_settings_image; lv_obj_t *ui_icon_reverb; @@ -55,6 +52,10 @@ typedef struct _objects_t { lv_obj_t *ui_icon_val_dly; lv_obj_t *ui_icon_val_dst; lv_obj_t *ui_val_settings; + lv_obj_t *ui_left_arrow; + lv_obj_t *ui_right_arrow; + lv_obj_t *ui_entry_keyboard; + lv_obj_t *ui_ok_tick; lv_obj_t *ui_settings_tab_view; lv_obj_t *obj0; lv_obj_t *ui_gate_tab; @@ -203,6 +204,215 @@ typedef struct _objects_t { lv_obj_t *ui_volume_slider; lv_obj_t *ui_volume_value; lv_obj_t *ui_closeimage; + lv_obj_t *ui_val_settings_tab_view; + lv_obj_t *obj7; + lv_obj_t *ui_val_nr_tab; + lv_obj_t *ui_val_nr_block_label; + lv_obj_t *ui_val_nr_block_switch; + lv_obj_t *ui_val_nr_model_dropdown; + lv_obj_t *obj8; + lv_obj_t *ui_val_nr_param0_label; + lv_obj_t *ui_val_nr_param0_slider; + lv_obj_t *ui_val_nr_param0_value; + lv_obj_t *ui_val_nr_param1_label; + lv_obj_t *ui_val_nr_param1_slider; + lv_obj_t *ui_val_nr_param1_value; + lv_obj_t *ui_val_nr_param2_label; + lv_obj_t *ui_val_nr_param2_slider; + lv_obj_t *ui_val_nr_param2_value; + lv_obj_t *ui_val_nr_param3_label; + lv_obj_t *ui_val_nr_param3_slider; + lv_obj_t *ui_val_nr_param3_value; + lv_obj_t *ui_val_nr_param4_label; + lv_obj_t *ui_val_nr_param4_slider; + lv_obj_t *ui_val_nr_param4_value; + lv_obj_t *ui_val_pre_tab; + lv_obj_t *ui_val_npre_block_label; + lv_obj_t *ui_val_pre_block_switch; + lv_obj_t *ui_val_pre_model_dropdown; + lv_obj_t *obj9; + lv_obj_t *ui_val_pre_param0_label; + lv_obj_t *ui_val_pre_param0_slider; + lv_obj_t *ui_val_pre_param0_value; + lv_obj_t *ui_val_pre_param1_label; + lv_obj_t *ui_val_pre_param1_slider; + lv_obj_t *ui_val_pre_param1_value; + lv_obj_t *ui_val_pre_param2_label; + lv_obj_t *ui_val_pre_param2_slider; + lv_obj_t *ui_val_pre_param2_value; + lv_obj_t *ui_val_pre_param3_label; + lv_obj_t *ui_val_pre_param3_slider; + lv_obj_t *ui_val_pre_param3_value; + lv_obj_t *ui_val_pre_param4_label; + lv_obj_t *ui_val_pre_param4_slider; + lv_obj_t *ui_val_pre_param4_value; + lv_obj_t *ui_val_dst_tab; + lv_obj_t *ui_val_dst_block_label; + lv_obj_t *ui_val_dst_block_switch; + lv_obj_t *ui_val_dst_model_dropdown; + lv_obj_t *obj10; + lv_obj_t *ui_val_dst_param0_label; + lv_obj_t *ui_val_dst_param0_slider; + lv_obj_t *ui_val_dst_param0_value; + lv_obj_t *ui_val_dst_param1_label; + lv_obj_t *ui_val_dst_param1_slider; + lv_obj_t *ui_val_dst_param1_value; + lv_obj_t *ui_val_dst_param2_label; + lv_obj_t *ui_val_dst_param2_slider; + lv_obj_t *ui_val_dst_param2_value; + lv_obj_t *ui_val_dst_param3_label; + lv_obj_t *ui_val_dst_param3_slider; + lv_obj_t *ui_val_dst_param3_value; + lv_obj_t *ui_val_dst_param4_label; + lv_obj_t *ui_val_dst_param4_slider; + lv_obj_t *ui_val_dst_param4_value; + lv_obj_t *ui_val_amp_tab; + lv_obj_t *ui_val_amp_block_label; + lv_obj_t *ui_val_amp_block_switch; + lv_obj_t *ui_val_amp_model_dropdown; + lv_obj_t *obj11; + lv_obj_t *ui_val_amp_param0_label; + lv_obj_t *ui_val_amp_param0_slider; + lv_obj_t *ui_val_amp_param0_value; + lv_obj_t *ui_val_amp_param1_label; + lv_obj_t *ui_val_amp_param1_slider; + lv_obj_t *ui_val_amp_param1_value; + lv_obj_t *ui_val_amp_param2_label; + lv_obj_t *ui_val_amp_param2_slider; + lv_obj_t *ui_val_amp_param2_value; + lv_obj_t *ui_val_amp_param3_label; + lv_obj_t *ui_val_amp_param3_slider; + lv_obj_t *ui_val_amp_param3_value; + lv_obj_t *ui_val_amp_param4_label; + lv_obj_t *ui_val_amp_param4_slider; + lv_obj_t *ui_val_amp_param4_value; + lv_obj_t *ui_val_cab_tab; + lv_obj_t *ui_val_cab_block_label; + lv_obj_t *ui_val_cab_block_switch; + lv_obj_t *ui_val_cab_model_dropdown; + lv_obj_t *obj12; + lv_obj_t *ui_val_cab_param0_label; + lv_obj_t *ui_val_cab_param0_slider; + lv_obj_t *ui_val_cab_param0_value; + lv_obj_t *ui_val_cab_param1_label; + lv_obj_t *ui_val_cab_param1_slider; + lv_obj_t *ui_val_cab_param1_value; + lv_obj_t *ui_val_cab_param2_label; + lv_obj_t *ui_val_cab_param2_slider; + lv_obj_t *ui_val_cab_param2_value; + lv_obj_t *ui_val_cab_param3_label; + lv_obj_t *ui_val_cab_param3_slider; + lv_obj_t *ui_val_cab_param3_value; + lv_obj_t *ui_val_cab_param4_label; + lv_obj_t *ui_val_cab_param4_slider; + lv_obj_t *ui_val_cab_param4_value; + lv_obj_t *ui_val_eq_tab; + lv_obj_t *ui_val_eq_block_label; + lv_obj_t *ui_val_eq_block_switch; + lv_obj_t *ui_val_eq_model_dropdown; + lv_obj_t *obj13; + lv_obj_t *ui_val_eq_param0_label; + lv_obj_t *ui_val_eq_param0_slider; + lv_obj_t *ui_val_eq_param0_value; + lv_obj_t *ui_val_eq_param1_label; + lv_obj_t *ui_val_eq_param1_slider; + lv_obj_t *ui_val_eq_param1_value; + lv_obj_t *ui_val_eq_param2_label; + lv_obj_t *ui_val_eq_param2_slider; + lv_obj_t *ui_val_eq_param2_value; + lv_obj_t *ui_val_eq_param3_label; + lv_obj_t *ui_val_eq_param3_slider; + lv_obj_t *ui_val_eq_param3_value; + lv_obj_t *ui_val_eq_param4_label; + lv_obj_t *ui_val_eq_param4_slider; + lv_obj_t *ui_val_eq_param4_value; + lv_obj_t *ui_val_mod_tab; + lv_obj_t *ui_val_mod_block_label; + lv_obj_t *ui_val_mod_block_switch; + lv_obj_t *ui_val_mod_model_dropdown; + lv_obj_t *obj14; + lv_obj_t *ui_val_mod_param0_label; + lv_obj_t *ui_val_mod_param0_slider; + lv_obj_t *ui_val_mod_param0_value; + lv_obj_t *ui_val_mod_param1_label; + lv_obj_t *ui_val_mod_param1_slider; + lv_obj_t *ui_val_mod_param1_value; + lv_obj_t *ui_val_mod_param2_label; + lv_obj_t *ui_val_mod_param2_slider; + lv_obj_t *ui_val_mod_param2_value; + lv_obj_t *ui_val_mod_param3_label; + lv_obj_t *ui_val_mod_param3_slider; + lv_obj_t *ui_val_mod_param3_value; + lv_obj_t *ui_val_mod_param4_label; + lv_obj_t *ui_val_mod_param4_slider; + lv_obj_t *ui_val_mod_param4_value; + lv_obj_t *ui_val_dly_tab; + lv_obj_t *ui_val_dly_block_label; + lv_obj_t *ui_val_dly_block_switch; + lv_obj_t *ui_val_dly_model_dropdown; + lv_obj_t *obj15; + lv_obj_t *ui_val_dly_param0_label; + lv_obj_t *ui_val_dly_param0_slider; + lv_obj_t *ui_val_dly_param0_value; + lv_obj_t *ui_val_dly_param1_label; + lv_obj_t *ui_val_dly_param1_slider; + lv_obj_t *ui_val_dly_param1_value; + lv_obj_t *ui_val_dly_param2_label; + lv_obj_t *ui_val_dly_param2_slider; + lv_obj_t *ui_val_dly_param2_value; + lv_obj_t *ui_val_dly_param3_label; + lv_obj_t *ui_val_dly_param3_slider; + lv_obj_t *ui_val_dly_param3_value; + lv_obj_t *ui_val_dly_param4_label; + lv_obj_t *ui_val_dly_param4_slider; + lv_obj_t *ui_val_dly_param4_value; + lv_obj_t *ui_val_rvb_tab; + lv_obj_t *ui_val_rvb_block_label; + lv_obj_t *ui_val_rvb_block_switch; + lv_obj_t *ui_val_rvb_model_dropdown; + lv_obj_t *obj16; + lv_obj_t *ui_val_rvb_param0_label; + lv_obj_t *ui_val_rvb_param0_slider; + lv_obj_t *ui_val_rvb_param0_value; + lv_obj_t *ui_val_rvb_param1_label; + lv_obj_t *ui_val_rvb_param1_slider; + lv_obj_t *ui_val_rvb_param1_value; + lv_obj_t *ui_val_rvb_param2_label; + lv_obj_t *ui_val_rvb_param2_slider; + lv_obj_t *ui_val_rvb_param2_value; + lv_obj_t *ui_val_rvb_param3_label; + lv_obj_t *ui_val_rvb_param3_slider; + lv_obj_t *ui_val_rvb_param3_value; + lv_obj_t *ui_val_rvb_param4_label; + lv_obj_t *ui_val_rvb_param4_slider; + lv_obj_t *ui_val_rvb_param4_value; + lv_obj_t *ui_val_ns_tab; + lv_obj_t *ui_val_ns_block_label; + lv_obj_t *ui_val_ns_block_switch; + lv_obj_t *ui_val_ns_model_dropdown; + lv_obj_t *obj17; + lv_obj_t *ui_val_ns_param0_label; + lv_obj_t *ui_val_ns_param0_slider; + lv_obj_t *ui_val_ns_param0_value; + lv_obj_t *ui_val_ns_param1_label; + lv_obj_t *ui_val_ns_param1_slider; + lv_obj_t *ui_val_ns_param1_value; + lv_obj_t *ui_val_ns_param2_label; + lv_obj_t *ui_val_ns_param2_slider; + lv_obj_t *ui_val_ns_param2_value; + lv_obj_t *ui_val_ns_param3_label; + lv_obj_t *ui_val_ns_param3_slider; + lv_obj_t *ui_val_ns_param3_value; + lv_obj_t *ui_val_ns_param4_label; + lv_obj_t *ui_val_ns_param4_slider; + lv_obj_t *ui_val_ns_param4_value; + lv_obj_t *ui_val_glob_tab; + lv_obj_t *ui_val_glob_no_cab_label; + lv_obj_t *ui_val_glob_no_cab_switch; + lv_obj_t *ui_val_glob_input_level_label; + lv_obj_t *ui_val_glob_input_level_slider; + lv_obj_t *ui_val_glob_input_level_value; + lv_obj_t *ui_val_closeimage; } objects_t; extern objects_t objects; @@ -210,6 +420,7 @@ extern objects_t objects; enum ScreensEnum { SCREEN_ID_SCREEN1 = 1, SCREEN_ID_SETTINGS = 2, + SCREEN_ID_VAL_SETTINGS = 3, }; void create_screen_screen1(); @@ -218,6 +429,9 @@ void tick_screen_screen1(); void create_screen_settings(); void tick_screen_settings(); +void create_screen_val_settings(); +void tick_screen_val_settings(); + void tick_screen_by_id(enum ScreensEnum screenId); void tick_screen(int screen_index); diff --git a/source/main/ui_generated_800x480land/screens.c b/source/main/ui_generated_800x480land/screens.c index f00838f1..e9034e1a 100644 --- a/source/main/ui_generated_800x480land/screens.c +++ b/source/main/ui_generated_800x480land/screens.c @@ -273,46 +273,6 @@ void create_screen_screen1() { } } } - { - // ui_LeftArrow - lv_obj_t *obj = lv_img_create(parent_obj); - objects.ui_left_arrow = obj; - lv_obj_set_pos(obj, 88, 165); - lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); - lv_img_set_src(obj, &img_arrow_left); - lv_obj_add_event_cb(obj, action_amp_skin_previous, LV_EVENT_PRESSED, (void *)0); - lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN|LV_OBJ_FLAG_CLICKABLE); - } - { - // ui_RightArrow - lv_obj_t *obj = lv_img_create(parent_obj); - objects.ui_right_arrow = obj; - lv_obj_set_pos(obj, 640, 165); - lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); - lv_img_set_src(obj, &img_arrow_right); - lv_obj_add_event_cb(obj, action_amp_skin_next, LV_EVENT_PRESSED, (void *)0); - lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN|LV_OBJ_FLAG_CLICKABLE); - } - { - // ui_EntryKeyboard - lv_obj_t *obj = lv_keyboard_create(parent_obj); - objects.ui_entry_keyboard = obj; - lv_obj_set_pos(obj, 0, 3); - lv_obj_set_size(obj, 800, 275); - lv_obj_add_event_cb(obj, action_keyboard_ok, LV_EVENT_READY, (void *)0); - lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN); - lv_obj_set_style_align(obj, LV_ALIGN_DEFAULT, LV_PART_MAIN | LV_STATE_DEFAULT); - } - { - // ui_OKTick - lv_obj_t *obj = lv_img_create(parent_obj); - objects.ui_ok_tick = obj; - lv_obj_set_pos(obj, 343, 405); - lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); - lv_img_set_src(obj, &img_tick); - lv_obj_add_event_cb(obj, action_save_skin_edit, LV_EVENT_PRESSED, (void *)0); - lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN|LV_OBJ_FLAG_CLICKABLE); - } { // ui_BottomPanelTonex lv_obj_t *obj = lv_obj_create(parent_obj); @@ -558,6 +518,46 @@ void create_screen_screen1() { } } } + { + // ui_LeftArrow + lv_obj_t *obj = lv_img_create(parent_obj); + objects.ui_left_arrow = obj; + lv_obj_set_pos(obj, 88, 165); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_img_set_src(obj, &img_arrow_left); + lv_obj_add_event_cb(obj, action_amp_skin_previous, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN|LV_OBJ_FLAG_CLICKABLE); + } + { + // ui_RightArrow + lv_obj_t *obj = lv_img_create(parent_obj); + objects.ui_right_arrow = obj; + lv_obj_set_pos(obj, 640, 165); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_img_set_src(obj, &img_arrow_right); + lv_obj_add_event_cb(obj, action_amp_skin_next, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN|LV_OBJ_FLAG_CLICKABLE); + } + { + // ui_EntryKeyboard + lv_obj_t *obj = lv_keyboard_create(parent_obj); + objects.ui_entry_keyboard = obj; + lv_obj_set_pos(obj, 0, 3); + lv_obj_set_size(obj, 800, 275); + lv_obj_add_event_cb(obj, action_keyboard_ok, LV_EVENT_READY, (void *)0); + lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN); + lv_obj_set_style_align(obj, LV_ALIGN_DEFAULT, LV_PART_MAIN | LV_STATE_DEFAULT); + } + { + // ui_OKTick + lv_obj_t *obj = lv_img_create(parent_obj); + objects.ui_ok_tick = obj; + lv_obj_set_pos(obj, 343, 405); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_img_set_src(obj, &img_tick); + lv_obj_add_event_cb(obj, action_save_skin_edit, LV_EVENT_PRESSED, (void *)0); + lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN|LV_OBJ_FLAG_CLICKABLE); + } } } } diff --git a/source/main/ui_generated_800x480land/screens.h b/source/main/ui_generated_800x480land/screens.h index b2605ade..8de90d9a 100644 --- a/source/main/ui_generated_800x480land/screens.h +++ b/source/main/ui_generated_800x480land/screens.h @@ -32,10 +32,6 @@ typedef struct _objects_t { lv_obj_t *ui_bpm_title_label; lv_obj_t *ui_bpm_value_label; lv_obj_t *ui_bpm_indicator; - lv_obj_t *ui_left_arrow; - lv_obj_t *ui_right_arrow; - lv_obj_t *ui_entry_keyboard; - lv_obj_t *ui_ok_tick; lv_obj_t *ui_bottom_panel_tonex; lv_obj_t *ui_settings_image; lv_obj_t *ui_icon_reverb; @@ -58,6 +54,10 @@ typedef struct _objects_t { lv_obj_t *ui_icon_val_dly; lv_obj_t *ui_icon_val_dst; lv_obj_t *ui_val_settings; + lv_obj_t *ui_left_arrow; + lv_obj_t *ui_right_arrow; + lv_obj_t *ui_entry_keyboard; + lv_obj_t *ui_ok_tick; lv_obj_t *ui_settings_tab_view; lv_obj_t *obj0; lv_obj_t *ui_gate_tab; diff --git a/source/main/usb_valeton_gp5.c b/source/main/usb_valeton_gp5.c index 6d29e04f..56e7f699 100644 --- a/source/main/usb_valeton_gp5.c +++ b/source/main/usb_valeton_gp5.c @@ -149,6 +149,7 @@ static QueueHandle_t input_queue; static volatile tInputBufferEntry* InputBuffers; static uint8_t* ProcessingBuffer; static uint8_t* TransmitBuffer; +static uint8_t snaptone_sync_done = 0; static const EffectMapEntry_t effect_map_nr[] = { {VALETON_EFFECT_NR_GATE, 0x1B000000}, @@ -402,6 +403,8 @@ static void usb_valeton_gp5_set_preset(uint8_t index); static void usb_valeton_gp5_request_preset_params(void); static void usb_valeton_gp5_set_effect_block_state(uint8_t block_index, uint8_t state); static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint32_t len) ; +static void usb_valeton_gp5_request_ir(void); +static void usb_valeton_gp5_request_nams(void); /**************************************************************************** * NAME: @@ -928,7 +931,7 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 case 0x20: { // IRs - ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); + //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); ESP_LOGI(TAG, "Got IRs"); @@ -992,10 +995,13 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 case 0x24: { // NAM models/Snaptones - ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); + //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); ESP_LOGI(TAG, "Got Snaptones"); + // request ITs + usb_valeton_gp5_request_ir(); + // example response // 0000 f0 0d // 0010 06 00 0e 00 00 06 04 01 02 02 04 00 01 00 01 00 @@ -1369,7 +1375,14 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 } // debug - //valeton_dump_parameters(); + //valeton_dump_parameters(); + + if (!snaptone_sync_done) + { + // request snaptones once only + usb_valeton_gp5_request_nams(); + snaptone_sync_done = 1; + } } break; case 0x43: diff --git a/source/sdkconfig.piratemax35 b/source/sdkconfig.piratemax35 new file mode 100644 index 00000000..476e2e4d --- /dev/null +++ b/source/sdkconfig.piratemax35 @@ -0,0 +1,25 @@ +# Settings for Waveshare 4.3B in Pirate Midi housing +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions_16MB.csv" +CONFIG_PARTITION_TABLE_FILENAME="partitions_16MB.csv" +CONFIG_PARTITION_TABLE_OFFSET=0x8000 +CONFIG_PARTITION_TABLE_MD5=y +CONFIG_ESPTOOLPY_FLASHMODE_QIO=y +CONFIG_ESPTOOLPY_FLASHMODE="qio" +CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y +CONFIG_ESPTOOLPY_FLASHSIZE="16MB" +CONFIG_SPIRAM_MODE_OCT=y +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y +CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_MAX_V2 +CONFIG_TONEX_CONTROLLER_SKINS_AMP=y +CONFIG_TONEX_CONTROLLER_SKINS_PEDAL=y +CONFIG_TONEX_CONTROLLER_HAS_DISPLAY=y +CONFIG_TONEX_CONTROLLER_DISPLAY_SMALL=n +CONFIG_TONEX_CONTROLLER_GPIO_FOOTSWITCHES=n +CONFIG_TONEX_CONTROLLER_HAS_TOUCH=y +CONFIG_TONEX_CONTROLLER_DEFAULT_MIDI_ENABLE=y +CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI=y +CONFIG_SPIRAM_FETCH_INSTRUCTIONS=y +CONFIG_TONEX_CONTROLLER_SHOW_BPM_INDICATOR=y +CONFIG_TONEX_CONTROLLER_ENABLE_MIDI_THRU=y + diff --git a/source/sdkconfig.piratepro b/source/sdkconfig.piratepro new file mode 100644 index 00000000..d5b60106 --- /dev/null +++ b/source/sdkconfig.piratepro @@ -0,0 +1,20 @@ +# Settings for Pirate Midi Pro (1.69" LCD with 4 footswitches) +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" +CONFIG_PARTITION_TABLE_FILENAME="partitions.csv" +CONFIG_PARTITION_TABLE_OFFSET=0x8000 +CONFIG_PARTITION_TABLE_MD5=y +CONFIG_ESPTOOLPY_FLASHMODE_QIO=y +CONFIG_ESPTOOLPY_FLASHMODE="qio" +CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y +CONFIG_ESPTOOLPY_FLASHSIZE="16MB" +CONFIG_SPIRAM_MODE_OCT=y +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160=y +CONFIG_LV_COLOR_16_SWAP=y +CONFIG_LV_COLOR_SCREEN_TRANSP=y +CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_PRO=y +CONFIG_TONEX_CONTROLLER_HAS_DISPLAY=y +CONFIG_TONEX_CONTROLLER_DISPLAY_SMALL=y +CONFIG_TONEX_CONTROLLER_GPIO_FOOTSWITCHES=y +CONFIG_TONEX_CONTROLLER_DEFAULT_MIDI_ENABLE=y +CONFIG_SPIRAM_FETCH_INSTRUCTIONS=y diff --git a/ui_design_480x320land/Tonex_Controller_480_320.eez-project b/ui_design_480x320land/Tonex_Controller_480_320.eez-project index a1226f7b..85527573 100644 --- a/ui_design_480x320land/Tonex_Controller_480_320.eez-project +++ b/ui_design_480x320land/Tonex_Controller_480_320.eez-project @@ -1203,237 +1203,6 @@ "acceptedCharacters": "", "maxTextLength": 128 }, - { - "objID": "516fed02-ebdb-4c62-ba10-6f956fd361ca", - "type": "LVGLImageWidget", - "left": 6, - "top": 90, - "width": 68, - "height": 70, - "customInputs": [], - "customOutputs": [], - "style": { - "objID": "edaef75a-f2dd-4ddb-dc65-efe1b7588900", - "useStyle": "default", - "conditionalStyles": [], - "childStyles": [] - }, - "hiddenInEditor": true, - "timeline": [], - "eventHandlers": [ - { - "objID": "ad87a352-06aa-41e1-f3ee-0780e430f80e", - "eventName": "PRESSED", - "handlerType": "action", - "action": "AmpSkinPrevious", - "userData": 0 - } - ], - "identifier": "ui_LeftArrow", - "leftUnit": "px", - "topUnit": "px", - "widthUnit": "content", - "heightUnit": "content", - "children": [], - "widgetFlags": "ADV_HITTEST|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", - "hiddenFlag": true, - "hiddenFlagType": "literal", - "clickableFlag": true, - "clickableFlagType": "literal", - "flagScrollbarMode": "", - "flagScrollDirection": "", - "scrollSnapX": "", - "scrollSnapY": "", - "checkedStateType": "literal", - "disabledStateType": "literal", - "states": "", - "localStyles": { - "objID": "500161f4-bd26-4d5c-a3ae-e60cb8739dd1" - }, - "group": "", - "groupIndex": 0, - "image": "arrow_left", - "setPivot": false, - "pivotX": 0, - "pivotY": 0, - "zoom": 192, - "angle": 0, - "innerAlign": "CENTER" - }, - { - "objID": "58bfa162-b377-44c6-97b3-21456f87aed3", - "type": "LVGLImageWidget", - "left": 397, - "top": 90, - "width": 68, - "height": 70, - "customInputs": [], - "customOutputs": [], - "style": { - "objID": "cb19d612-39a7-468f-88d7-49a915ef2c86", - "useStyle": "default", - "conditionalStyles": [], - "childStyles": [] - }, - "hiddenInEditor": true, - "timeline": [], - "eventHandlers": [ - { - "objID": "ca7cfdcb-7ed4-4530-8706-d34014d24716", - "eventName": "PRESSED", - "handlerType": "action", - "action": "AmpSkinNext", - "userData": 0 - } - ], - "identifier": "ui_RightArrow", - "leftUnit": "px", - "topUnit": "px", - "widthUnit": "content", - "heightUnit": "content", - "children": [], - "widgetFlags": "ADV_HITTEST|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", - "hiddenFlag": true, - "hiddenFlagType": "literal", - "clickableFlag": true, - "clickableFlagType": "literal", - "flagScrollbarMode": "", - "flagScrollDirection": "", - "scrollSnapX": "", - "scrollSnapY": "", - "checkedStateType": "literal", - "disabledStateType": "literal", - "states": "", - "localStyles": { - "objID": "aca07045-df36-4cd0-8006-8fd925f9014d" - }, - "group": "", - "groupIndex": 0, - "image": "arrow_right", - "setPivot": false, - "pivotX": 0, - "pivotY": 0, - "zoom": 192, - "angle": 0, - "innerAlign": "CENTER" - }, - { - "objID": "e1c9173a-62a2-4cbe-dd94-6265baa09b9f", - "type": "LVGLKeyboardWidget", - "left": 0, - "top": 0, - "width": 480, - "height": 183, - "customInputs": [], - "customOutputs": [], - "style": { - "objID": "281cb968-3137-48c7-e2d1-ad3ac20d2b29", - "useStyle": "default", - "conditionalStyles": [], - "childStyles": [] - }, - "hiddenInEditor": true, - "timeline": [], - "eventHandlers": [ - { - "objID": "edcb82b5-7dee-4bef-a35e-14993c0bb8bd", - "eventName": "READY", - "handlerType": "action", - "action": "KeyboardOK", - "userData": 0 - } - ], - "identifier": "ui_EntryKeyboard", - "leftUnit": "px", - "topUnit": "px", - "widthUnit": "px", - "heightUnit": "px", - "children": [], - "widgetFlags": "GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", - "hiddenFlag": true, - "hiddenFlagType": "literal", - "clickableFlag": true, - "clickableFlagType": "literal", - "flagScrollbarMode": "", - "flagScrollDirection": "", - "scrollSnapX": "", - "scrollSnapY": "", - "checkedStateType": "literal", - "disabledState": false, - "disabledStateType": "literal", - "states": "", - "localStyles": { - "objID": "34cf5aa1-0712-4d74-94b3-b9f30d61c550", - "definition": { - "MAIN": { - "DEFAULT": { - "align": "DEFAULT" - } - } - } - }, - "group": "", - "groupIndex": 0, - "textarea": "ui_preset_details_text_area", - "mode": "TEXT_LOWER" - }, - { - "objID": "a7b62923-440e-4cf0-9e4e-a9583c0c7bd9", - "type": "LVGLImageWidget", - "left": 197, - "top": 258, - "width": 87, - "height": 70, - "customInputs": [], - "customOutputs": [], - "style": { - "objID": "cc507296-8ae7-46b3-b06b-bfcb5aacfcf9", - "useStyle": "default", - "conditionalStyles": [], - "childStyles": [] - }, - "hiddenInEditor": true, - "timeline": [], - "eventHandlers": [ - { - "objID": "18ae2bf7-d174-4fe7-c9be-49cb2defa225", - "eventName": "PRESSED", - "handlerType": "action", - "action": "SaveSkinEdit", - "userData": 0 - } - ], - "identifier": "ui_OKTick", - "leftUnit": "px", - "topUnit": "px", - "widthUnit": "content", - "heightUnit": "content", - "children": [], - "widgetFlags": "ADV_HITTEST|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", - "hiddenFlag": true, - "hiddenFlagType": "literal", - "clickableFlag": true, - "clickableFlagType": "literal", - "flagScrollbarMode": "", - "flagScrollDirection": "", - "scrollSnapX": "", - "scrollSnapY": "", - "checkedStateType": "literal", - "disabledStateType": "literal", - "states": "", - "localStyles": { - "objID": "c0fb173d-842d-4a19-cf5d-ba04f57f4cc3" - }, - "group": "", - "groupIndex": 0, - "image": "tick", - "setPivot": false, - "pivotX": 0, - "pivotY": 0, - "zoom": 192, - "angle": 0, - "innerAlign": "CENTER" - }, { "objID": "c5acbd04-2a91-4da0-a470-cec66a14bdc7", "type": "LVGLPanelWidget", @@ -2781,31 +2550,262 @@ }, "group": "", "groupIndex": 0 - } - ], - "widgetFlags": "CLICK_FOCUSABLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", - "hiddenFlagType": "literal", - "clickableFlag": true, - "clickableFlagType": "literal", - "flagScrollbarMode": "", - "flagScrollDirection": "", - "scrollSnapX": "", - "scrollSnapY": "", - "checkedStateType": "literal", - "disabledStateType": "literal", - "states": "", - "localStyles": { - "objID": "1ea11212-cc2f-4827-e88e-4214231a899b" - }, - "group": "", - "groupIndex": 0 - } - ], - "widgetFlags": "CLICKABLE|PRESS_LOCK|CLICK_FOCUSABLE|GESTURE_BUBBLE|SNAPPABLE|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER", - "hiddenFlagType": "literal", - "clickableFlag": true, - "clickableFlagType": "literal", - "checkedStateType": "literal", + }, + { + "objID": "516fed02-ebdb-4c62-ba10-6f956fd361ca", + "type": "LVGLImageWidget", + "left": 6, + "top": 90, + "width": 68, + "height": 70, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "edaef75a-f2dd-4ddb-dc65-efe1b7588900", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": true, + "timeline": [], + "eventHandlers": [ + { + "objID": "ad87a352-06aa-41e1-f3ee-0780e430f80e", + "eventName": "PRESSED", + "handlerType": "action", + "action": "AmpSkinPrevious", + "userData": 0 + } + ], + "identifier": "ui_LeftArrow", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "ADV_HITTEST|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlag": true, + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "500161f4-bd26-4d5c-a3ae-e60cb8739dd1" + }, + "group": "", + "groupIndex": 0, + "image": "arrow_left", + "setPivot": false, + "pivotX": 0, + "pivotY": 0, + "zoom": 192, + "angle": 0, + "innerAlign": "CENTER" + }, + { + "objID": "58bfa162-b377-44c6-97b3-21456f87aed3", + "type": "LVGLImageWidget", + "left": 397, + "top": 90, + "width": 68, + "height": 70, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "cb19d612-39a7-468f-88d7-49a915ef2c86", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": true, + "timeline": [], + "eventHandlers": [ + { + "objID": "ca7cfdcb-7ed4-4530-8706-d34014d24716", + "eventName": "PRESSED", + "handlerType": "action", + "action": "AmpSkinNext", + "userData": 0 + } + ], + "identifier": "ui_RightArrow", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "ADV_HITTEST|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlag": true, + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "aca07045-df36-4cd0-8006-8fd925f9014d" + }, + "group": "", + "groupIndex": 0, + "image": "arrow_right", + "setPivot": false, + "pivotX": 0, + "pivotY": 0, + "zoom": 192, + "angle": 0, + "innerAlign": "CENTER" + }, + { + "objID": "e1c9173a-62a2-4cbe-dd94-6265baa09b9f", + "type": "LVGLKeyboardWidget", + "left": 0, + "top": 0, + "width": 480, + "height": 183, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "281cb968-3137-48c7-e2d1-ad3ac20d2b29", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": true, + "timeline": [], + "eventHandlers": [ + { + "objID": "edcb82b5-7dee-4bef-a35e-14993c0bb8bd", + "eventName": "READY", + "handlerType": "action", + "action": "KeyboardOK", + "userData": 0 + } + ], + "identifier": "ui_EntryKeyboard", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlag": true, + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledState": false, + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "34cf5aa1-0712-4d74-94b3-b9f30d61c550", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "DEFAULT" + } + } + } + }, + "group": "", + "groupIndex": 0, + "textarea": "ui_preset_details_text_area", + "mode": "TEXT_LOWER" + }, + { + "objID": "a7b62923-440e-4cf0-9e4e-a9583c0c7bd9", + "type": "LVGLImageWidget", + "left": 197, + "top": 258, + "width": 87, + "height": 70, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "cc507296-8ae7-46b3-b06b-bfcb5aacfcf9", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": true, + "timeline": [], + "eventHandlers": [ + { + "objID": "18ae2bf7-d174-4fe7-c9be-49cb2defa225", + "eventName": "PRESSED", + "handlerType": "action", + "action": "SaveSkinEdit", + "userData": 0 + } + ], + "identifier": "ui_OKTick", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "ADV_HITTEST|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlag": true, + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "c0fb173d-842d-4a19-cf5d-ba04f57f4cc3" + }, + "group": "", + "groupIndex": 0, + "image": "tick", + "setPivot": false, + "pivotX": 0, + "pivotY": 0, + "zoom": 192, + "angle": 0, + "innerAlign": "CENTER" + } + ], + "widgetFlags": "CLICK_FOCUSABLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "1ea11212-cc2f-4827-e88e-4214231a899b" + }, + "group": "", + "groupIndex": 0 + } + ], + "widgetFlags": "CLICKABLE|PRESS_LOCK|CLICK_FOCUSABLE|GESTURE_BUBBLE|SNAPPABLE|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "checkedStateType": "literal", "disabledStateType": "literal", "states": "", "localStyles": { @@ -11795,6 +11795,12880 @@ "isUsedAsUserWidget": false, "createAtStart": true, "deleteOnScreenUnload": false + }, + { + "objID": "86cf3f68-ecc5-4a4d-a81c-9be2fd31ae5b", + "components": [ + { + "objID": "e09f74cd-73bd-4bef-ec8e-c1f5ef4f6620", + "type": "LVGLScreenWidget", + "left": 0, + "top": 0, + "width": 480, + "height": 320, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "6b14c146-240c-410a-f3f6-fed451e0d231", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "a8a8cbe4-cf46-4e6c-abc4-172e032d5ec7", + "type": "LVGLTabviewWidget", + "left": 5, + "top": 5, + "width": 480, + "height": 320, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "62742b52-9b1e-4ae2-baa8-1ab78f9196f6", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValSettingsTabView", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "1f64095b-05d6-4c71-e95d-cc808405ab0d", + "type": "LVGLContainerWidget", + "left": 0, + "top": 0, + "width": 480, + "height": 52, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "a8ea6050-6b8a-4055-8958-cb96c173e269", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "0bb1a694-59ee-4d6f-eb81-9db63f6aed4f", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#2A2A2A" + } + }, + "ITEMS": { + "DEFAULT": { + "text_color": "#ffffff", + "border_color": "#373737", + "border_width": 2, + "border_side": "LEFT" + }, + "CHECKED": { + "border_color": "#96969e", + "bg_color": "#2196f3" + } + } + } + }, + "group": "", + "groupIndex": 0 + }, + { + "objID": "43ab101c-d8a3-40e2-bbc7-7fcab0bdaaff", + "type": "LVGLTabWidget", + "left": 10, + "top": 9, + "width": 480, + "height": 268, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "fe1dd4cd-b8db-48e8-8e7e-72fb606345a8", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNRTab", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "d4b1a137-76c7-4bed-c757-20838914112e", + "type": "LVGLLabelWidget", + "left": 4, + "top": -110, + "width": 63, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "e4a58bd6-b289-4b98-fc2b-1cabec019b32", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNRBlockLabel", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "0a64a48d-ca80-4983-d993-748026e43a95", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "text_align": "AUTO", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Enable", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "c49ad620-e30e-4fc9-a5b0-37f35507f792", + "type": "LVGLSwitchWidget", + "left": 113, + "top": -109, + "width": 60, + "height": 24, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "ca7c89e8-c922-4a07-c8c6-ba288d37d87b", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "4097194c-4b40-4339-cdf3-47230f0ffaa3", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValNRBlockSwitch", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CHECKABLE|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "7b3693aa-6cd9-4ca9-c77a-95297695c8b4", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + }, + "INDICATOR": { + "CHECKED": { + "bg_color": "#3890d5" + } + } + } + }, + "group": "", + "groupIndex": 0 + }, + { + "objID": "3805fda1-f77f-40eb-c899-81f2a5762784", + "type": "LVGLDropdownWidget", + "left": 298, + "top": 1, + "width": 165, + "height": 38, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "bcaac14a-24c5-4003-ba92-00152589e734", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "813121a2-bc96-413a-9186-cfdf543d5089", + "eventName": "VALUE_CHANGED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValNRModelDropdown", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "3fc89ea4-d7ee-4e8c-ec5d-c09dffeef041", + "type": "LVGLContainerWidget", + "left": 0, + "top": 0, + "width": 130, + "height": 130, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "e0e55b7a-37b2-477c-cd12-b23854277d40", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "0005fd18-d3e2-4125-b2a1-17a2bc38fba4", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_18" + } + }, + "SELECTED": { + "DEFAULT": { + "bg_color": "#3890d5" + }, + "CHECKED": { + "bg_color": "#3890d5", + "text_font": "MONTSERRAT_18" + } + } + } + }, + "group": "", + "groupIndex": 0 + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "c64d76cf-171d-4c45-d5e0-68a83299c238", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_18" + } + }, + "SELECTED": { + "CHECKED": { + "bg_color": "#ffffff" + }, + "DEFAULT": { + "bg_color": "#ffffff" + }, + "CHECKED|PRESSED": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "options": "Noise Gate", + "optionsType": "literal", + "selected": 0, + "selectedType": "literal", + "direction": "bottom" + }, + { + "objID": "1715fc35-ab17-4f0a-f115-7b21b297afbb", + "type": "LVGLLabelWidget", + "left": 4, + "top": -72, + "width": 73, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "5cc2c54c-e9d6-416a-ec89-e5571f9f5895", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNRParam0Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "891c5355-d10b-46e1-e563-0198c8e475fb", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "8d820855-826a-4876-efcd-cd5078600f91", + "type": "LVGLSliderWidget", + "left": 113, + "top": -72, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "e0b8c16b-3b4b-406a-a5c3-86a0d7d8bd84", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "86ff09e7-97b5-4def-c088-cd1f5bc46505", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValNRParam0Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "0c76d7cc-c998-4556-cc32-7179494853b1", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "8a995762-1527-47a6-a5a1-ca09b6bfe68d", + "type": "LVGLLabelWidget", + "left": 417, + "top": -72, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "7749d8e3-2138-4e36-9955-e0e8657d4694", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNRParam0Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "d0875d78-f76c-40df-ed8e-565d5e07dcef", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "7cced750-9cb2-4a28-d2f1-dfbf35a1cb5e", + "type": "LVGLLabelWidget", + "left": 4, + "top": -34, + "width": 68, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "3b0b4add-7e60-493e-a30b-d82a61c75a88", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNRParam1Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "00449935-5d38-45c2-e65c-14d0b97c65b0", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param1", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "02505598-255b-4609-8193-c1191deb2fe5", + "type": "LVGLSliderWidget", + "left": 113, + "top": -34, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "f2b156fe-4ebc-42cc-b06a-a690e2dd097c", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "a938abdf-06fe-4954-dfc5-2962860b63bc", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValNRParam1Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "12ba3e90-3a6f-4374-daba-d585e8b08560", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "648eb10d-ec88-4a88-c133-51920ae49068", + "type": "LVGLLabelWidget", + "left": 417, + "top": -36, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "1b67895c-86fa-44fa-83d1-865ca5e0b554", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNRParam1Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "0b82381a-1acf-48e6-bc70-42ad669d3622", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "99fc5ebb-0097-4916-de11-9346f56bb3de", + "type": "LVGLLabelWidget", + "left": 4, + "top": 4, + "width": 71, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "3fcbce57-37e9-46da-b810-d13feffd018c", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNRParam2Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "89d38d32-5ae9-4909-ae95-fea2f1adccc5", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param2", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "6d43f9b8-0cc9-45e5-9e61-219cc60c793a", + "type": "LVGLSliderWidget", + "left": 113, + "top": 4, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "6930b7db-7ab5-4192-ac63-0c4750a6595f", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "04c25a62-de94-48f3-964a-ee6ee65238dc", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValNRParam2Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "f770c3f7-3181-415f-c474-772447f57a81", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "ffaecd14-2ec5-40d7-dde2-2e12e4a55edc", + "type": "LVGLLabelWidget", + "left": 417, + "top": 4, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "a2f71865-d2be-4255-9abd-9d2ec0741d14", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNRParam2Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "8b46d91e-b096-42e8-d8de-2204dd06fc65", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "e811e553-0d5d-4ebb-b1ef-934e1a2c3329", + "type": "LVGLLabelWidget", + "left": 4, + "top": 42, + "width": 71, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "0be5bc51-fce5-4b06-d498-f62a89034a16", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNRParam3Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "e8251217-eddc-4f9d-c47a-c4e909220eaa", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param3", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "c81c5c15-9037-4073-80c5-563e897b8dd8", + "type": "LVGLSliderWidget", + "left": 113, + "top": 42, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "0dd4d6bf-e772-43e9-a603-1fdad5523a0e", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "9fffe7d4-34f5-4ff9-bb13-36d2d06f34b3", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValNRParam3Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "da0c125b-5c84-45c2-b79c-36ac0df05d0a", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "fbd06521-cf38-4518-b2c7-211e53d92d9f", + "type": "LVGLLabelWidget", + "left": 417, + "top": 42, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "27e504ba-968f-4f87-c98d-6347289aa3fd", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNRParam3Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "65623459-0a46-470a-89d4-1fdb7ba024d0", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "53f11763-1c5f-4671-a5a4-2dcd427e80b9", + "type": "LVGLLabelWidget", + "left": 4, + "top": 80, + "width": 73, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "01e0aeae-adb3-4e0b-feaa-8baf78b1f7f1", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNRParam4Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "c4ad742e-a56d-41a7-ef8b-50347a6c20a2", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param4", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "ed03631c-0909-4a5c-eb10-1af2a2750d80", + "type": "LVGLSliderWidget", + "left": 113, + "top": 80, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "3febf088-efa2-4b02-8ed3-ce8ef8a8b168", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "77855b13-9f22-4560-f2f0-0fbd15b7d78e", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValNRParam4Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "f1fa9270-7a2c-4834-f3f4-84f1d3302975", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "29ecc386-e6f7-40b2-bee6-a0b37ae59302", + "type": "LVGLLabelWidget", + "left": 417, + "top": 80, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "142cc470-1cd0-470a-83ed-0f09ad4e4e81", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNRParam4Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "6ffdee64-cb92-4ee7-da71-2e8eb7bae68f", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "off", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedState": false, + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "f4c11056-4e3a-4e96-9a24-615fdcfd5c34", + "definition": { + "MAIN": { + "CHECKED": { + "text_color": "FB9230", + "text_font": "MONTSERRAT_18", + "border_color": "#373737" + }, + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "text_color": "#fafafa", + "pad_top": 0, + "pad_bottom": 0, + "pad_left": 0, + "pad_right": 0, + "pad_row": 0, + "pad_column": 0, + "border_color": "373737", + "border_width": 2, + "border_side": "LEFT", + "bg_color": "#ffffff" + }, + "PRESSED": { + "bg_color": "513D2B" + }, + "CHECKED|PRESSED": { + "bg_color": "#513d2b" + } + } + } + }, + "group": "", + "groupIndex": 0, + "tabName": "NR", + "tabNameType": "literal" + }, + { + "objID": "e3bc3235-4ad4-499f-cfe1-bf71a19afde4", + "type": "LVGLTabWidget", + "left": 10, + "top": 9, + "width": 480, + "height": 268, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "d95a1749-c0d3-4c59-85c6-a74c6d580006", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValPreTab", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "a5b00561-2d45-456c-b695-99fb6e8e0796", + "type": "LVGLLabelWidget", + "left": 4, + "top": -110, + "width": 63, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "63f272e0-dff7-437d-8e55-98807c3d9b97", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNPreBlockLabel", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "f3d696f9-9081-4201-9b47-a2ff2f6a62c1", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "text_align": "AUTO", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Enable", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "bde4bbf2-70ec-496c-ecce-5d4603a01e8e", + "type": "LVGLSwitchWidget", + "left": 113, + "top": -110, + "width": 60, + "height": 24, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "34a3d704-90b5-456f-8c95-42aba3b95308", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "7985e220-b4fa-4375-eec7-d4f38246ff52", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValPreBlockSwitch", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CHECKABLE|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "a01b2214-8a6e-44f3-dc62-d6c1cd665e1b", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + }, + "INDICATOR": { + "CHECKED": { + "bg_color": "#3890d5" + } + } + } + }, + "group": "", + "groupIndex": 0 + }, + { + "objID": "1db9f7f8-0bd7-48f4-d3ab-79d962f07e46", + "type": "LVGLDropdownWidget", + "left": 298, + "top": 1, + "width": 165, + "height": 38, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "72045d30-eb91-4bb4-caba-e37b14ccb5f9", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [ + { + "objID": "8446f658-d46a-445a-e50d-91c823cd7bf8", + "eventName": "VALUE_CHANGED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValPreModelDropdown", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "6003c389-8104-495e-f6d4-6caf4f33b8af", + "type": "LVGLContainerWidget", + "left": 0, + "top": 0, + "width": 130, + "height": 130, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "c484c3a0-8d7e-48ce-ee78-d3187e91338c", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "a2ab4a34-41e5-4c75-a585-cdcd3f292fb6", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_18" + } + }, + "SELECTED": { + "DEFAULT": { + "bg_color": "#3890d5" + }, + "CHECKED": { + "bg_color": "#3890d5", + "text_font": "MONTSERRAT_18" + } + } + } + }, + "group": "", + "groupIndex": 0 + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "cfee2dab-b8e4-450d-800f-21e9ca6e8b74", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_18" + } + }, + "SELECTED": { + "CHECKED": { + "bg_color": "#ffffff" + }, + "DEFAULT": { + "bg_color": "#ffffff" + }, + "CHECKED|PRESSED": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "options": "Comp\nComp4\nBoost\nMicro Boost\nB-Boost\nToucher\nCrier\nOcta\nPitch\nDetune", + "optionsType": "literal", + "selected": 0, + "selectedType": "literal", + "direction": "bottom" + }, + { + "objID": "58f64971-53af-42a7-d5e9-25aa5197c463", + "type": "LVGLLabelWidget", + "left": 4, + "top": -72, + "width": 73, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "2ef075b3-8c26-474f-d30f-47aaef8d3551", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValPreParam0Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "0cbb8676-900f-425d-8194-10e63547b39c", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "336efec9-22a0-4d0b-8fa0-1ab302a214e8", + "type": "LVGLSliderWidget", + "left": 113, + "top": -72, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "a823f843-5a90-4fc0-e63d-0528bb5db8fe", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "095f079d-ac65-47af-d0f6-5d10751382f4", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValPreParam0Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "b4042fd9-f583-49a1-e6ec-703ea35e6e5f", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "5c63901d-6a19-409a-8625-089b26552be5", + "type": "LVGLLabelWidget", + "left": 417, + "top": -72, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "5a11976f-5fc3-4c12-ec7f-93e1f31da7a5", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValPreParam0Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "b8176145-1d8e-4239-a45c-c7378ce63fc1", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "8b142fff-d035-418e-b7f6-95e8118d83f9", + "type": "LVGLLabelWidget", + "left": 4, + "top": -34, + "width": 68, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "c3c58332-6d01-4a27-e982-fdbeed20e61b", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValPreParam1Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "8ccd270e-ae55-40a2-da9c-ab3b95109f8d", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param1", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "66b46dad-6d69-4f7a-f795-89d64e316e7a", + "type": "LVGLSliderWidget", + "left": 113, + "top": -34, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "625e40bf-7bdc-48f6-95fe-508b69c99912", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "b1198f8b-cc0d-4bb3-9d75-749a49306d06", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValPreParam1Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "7f274d58-5655-44e2-fcf7-827236fb81b6", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "9f2fcb49-b092-48dd-e4ff-728db972f26b", + "type": "LVGLLabelWidget", + "left": 417, + "top": -34, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "d56016ad-f94e-4a78-b1f5-3e0a4eb9b328", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValPreParam1Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "a793a944-6844-4078-9c9f-729fac6d7882", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "bb290d22-8d70-4906-9669-7cea0dcf94a5", + "type": "LVGLLabelWidget", + "left": 4, + "top": 4, + "width": 71, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "d4bd2f5b-c006-495f-d5a9-29d20f045e0d", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValPreParam2Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "47b536ca-b6aa-4b77-f7f7-b1761c0f1832", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param2", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "84b816de-a748-4480-e1e2-61aff42983dc", + "type": "LVGLSliderWidget", + "left": 113, + "top": 4, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "59da948c-5dac-478d-85b3-99253a8ebdac", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "f219549a-d90f-4a06-83da-ab2fe561571b", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValPreParam2Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "7842bbc7-cf89-45d5-d441-4494cd7dbc6f", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "9fff8aa0-e0b5-4cbd-cf72-f3a166808d91", + "type": "LVGLLabelWidget", + "left": 417, + "top": 4, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "6a42eacb-5b66-4dbe-9964-ecb60978cc28", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValPreParam2Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "1b5cb45d-321e-49f1-d3c9-5cf89b84766f", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "27849218-e701-4274-f8b4-2221b8e70727", + "type": "LVGLLabelWidget", + "left": 4, + "top": 42, + "width": 71, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "7829b0e2-9fb3-4263-9f93-acda38c33950", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValPreParam3Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "3feb4594-a6ba-47f2-d88a-22f06ef19b4f", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param3", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "c377eddb-07c1-4a98-f853-ae9e1eb95237", + "type": "LVGLSliderWidget", + "left": 113, + "top": 42, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "845cdb5b-db77-4553-ff0c-e4df821db6b5", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "996b18ca-0d0b-4a36-d57c-90561a567482", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValPreParam3Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "256e4fb7-5f6e-4e9d-e77d-3a1c8694aeeb", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "ae76d867-baff-4994-94a3-dfc80f62a139", + "type": "LVGLLabelWidget", + "left": 417, + "top": 42, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "d93a4c15-864b-4ff0-e58c-95b73ca55ac7", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValPreParam3Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "5b0ab035-3f5b-4359-fe37-871959984435", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "6ba02482-ae4a-42b5-f9ff-92ae0e4b7aef", + "type": "LVGLLabelWidget", + "left": 4, + "top": 80, + "width": 73, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "f2feaa9b-ae33-4061-800f-898b00a12225", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValPreParam4Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "9ea24cb1-d54e-49c4-efad-0dd2b0dd00a3", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param4", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "33086155-435d-4d77-dc60-6d74d3981d17", + "type": "LVGLSliderWidget", + "left": 113, + "top": 80, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "8646fcd3-3700-4601-e230-744fc3af2688", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "7674b886-cfc1-4b5d-cae1-fb04102ab6a3", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValPreParam4Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "cf307173-a7b2-4272-a82d-600120569c5d", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "ef1cfa82-c048-4599-de58-f3ecf45d2723", + "type": "LVGLLabelWidget", + "left": 417, + "top": 80, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "e8d000df-4a76-4246-9ce8-47be29e51504", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValPreParam4Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "9817944a-433f-44f4-fdd7-164501bc8550", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "off", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "23ad26ed-e016-4bf1-91dd-cc282f793096", + "definition": { + "MAIN": { + "CHECKED": { + "text_color": "FB9230", + "bg_color": "513D2B", + "text_font": "MONTSERRAT_20" + }, + "DEFAULT": { + "text_font": "MONTSERRAT_20", + "pad_top": 0, + "pad_bottom": 0, + "pad_left": 0, + "pad_right": 0, + "pad_row": 0, + "pad_column": 0, + "border_width": 2, + "border_color": "373737" + } + } + } + }, + "group": "", + "groupIndex": 0, + "tabName": "Pre", + "tabNameType": "literal" + }, + { + "objID": "1f61b467-5600-4c17-8117-429260355c7f", + "type": "LVGLTabWidget", + "left": 10, + "top": 9, + "width": 480, + "height": 268, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "e94dc62d-a7c3-40f4-d4aa-911772ef44ad", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDstTab", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "11153aaf-485d-4887-dfed-57d40bb08c0d", + "type": "LVGLLabelWidget", + "left": 4, + "top": -110, + "width": 63, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "dcf64f10-8c68-4941-a5e7-dcb31d727e99", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDstBlockLabel", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "ec474030-d14e-43dd-8ae6-528720d8b0b4", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "text_align": "AUTO", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Enable", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "b675cffa-9eab-4b78-b10c-a66833654d4d", + "type": "LVGLSwitchWidget", + "left": 113, + "top": -110, + "width": 60, + "height": 24, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "6dd1e223-9232-4511-f795-cdf71fdddbb5", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "bba9f4d7-b82f-4310-830d-f4d7cf39aef0", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValDstBlockSwitch", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CHECKABLE|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "fab0895e-2db6-426f-fc21-12f24a0eb092", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + }, + "INDICATOR": { + "CHECKED": { + "bg_color": "#3890d5" + } + } + } + }, + "group": "", + "groupIndex": 0 + }, + { + "objID": "43b43bad-5824-456c-f22b-edadd94ff0ad", + "type": "LVGLDropdownWidget", + "left": 298, + "top": 1, + "width": 165, + "height": 38, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "f2a57d20-90a4-4f6d-c2a5-8b714d14fd71", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [ + { + "objID": "14fe240b-dfb8-47be-c924-bb70e2596fb5", + "eventName": "VALUE_CHANGED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValDstModelDropdown", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "9e79d98e-f64a-4e23-dae0-170fd710b6e9", + "type": "LVGLContainerWidget", + "left": 0, + "top": 0, + "width": 130, + "height": 130, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "4aa2bc66-acc1-4d25-fe2e-b431be38f6bc", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "baf32b99-7d7e-472d-f030-8be35a5a3d5d", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_18" + } + }, + "SELECTED": { + "DEFAULT": { + "bg_color": "#3890d5" + }, + "CHECKED": { + "bg_color": "#3890d5", + "text_font": "MONTSERRAT_18" + } + } + } + }, + "group": "", + "groupIndex": 0 + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "b44c0e71-a5b1-4822-b4a2-ef96762a915f", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_18" + } + }, + "SELECTED": { + "CHECKED": { + "bg_color": "#ffffff" + }, + "DEFAULT": { + "bg_color": "#ffffff" + }, + "CHECKED|PRESSED": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "options": "Green OD\nYellow OD\nSuper OD\nSM Dist\nPlustortion\nLa Charger\nDarktale\nSora Fuzz\nRed Haze\nBass OD", + "optionsType": "literal", + "selected": 0, + "selectedType": "literal", + "direction": "bottom" + }, + { + "objID": "1f99e835-a108-499a-ecab-20ea993e2ef1", + "type": "LVGLLabelWidget", + "left": 4, + "top": -72, + "width": 73, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "4f9b8e64-aad0-4c34-cd2d-b941a66a0cf0", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDstParam0Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "ac7e6c59-3417-4b67-ca15-aa4317d6ea00", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "28378615-a53b-4864-ffe1-3fc08f19ed01", + "type": "LVGLSliderWidget", + "left": 113, + "top": -72, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "305afcd0-89e1-48ec-8226-c8d1844c41d2", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "0b07f131-e8dd-4f90-cb65-8e9b7bcf1d6e", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValDstParam0Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "826b6bce-3d44-4649-d30d-ef1ee8f9a7d7", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "6e80a0aa-eb21-4c64-f689-9c44d9589850", + "type": "LVGLLabelWidget", + "left": 417, + "top": -72, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "292d2d3f-ee2c-4e92-fc23-4dd446070cac", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDstParam0Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "054de3a0-414d-4be8-a426-4e452126ea1d", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "5c1a1ca0-fc36-4264-d57a-acf7179fca73", + "type": "LVGLLabelWidget", + "left": 4, + "top": -34, + "width": 68, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "a592374b-9f62-40cf-8517-fee5aba9c354", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDstParam1Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "8dc91fe4-5450-45f8-f636-2ce1a7d8f71c", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param1", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "85dc1264-2f66-4030-fb71-ef642277fa39", + "type": "LVGLSliderWidget", + "left": 113, + "top": -34, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "79ddec8d-4cd6-4135-83f6-7ecc9513e08a", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "c66d5c87-9d3c-4811-9329-fcc888885427", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValDstParam1Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "608b3e6e-7302-4fda-e115-b126bc4ddfc3", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "0be4b183-ccc1-469e-d7c2-fbb7b926b9c1", + "type": "LVGLLabelWidget", + "left": 417, + "top": -34, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "9117b101-bc6f-41a7-fc63-ef274fe310e4", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDstParam1Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "1c9c225e-7182-41bb-a97c-f6cc709175da", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "bc3f7005-56a4-4562-e36f-083ea5be4e69", + "type": "LVGLLabelWidget", + "left": 4, + "top": 4, + "width": 71, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "c0605666-7046-48fb-e65a-cc666fc69cc2", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDstParam2Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "75a607da-edbe-463b-cdb2-3624f9349132", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param2", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "4d999e50-9e23-4adb-9897-f300119cebd2", + "type": "LVGLSliderWidget", + "left": 113, + "top": 4, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "283dc2c4-31a5-48e9-91cb-f3ad4f775b10", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "24932760-50c0-4dd5-d938-061dc230dddf", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValDstParam2Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "73e4e97a-2a76-4d8c-d91e-e53f475d42aa", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "1955a65b-c2ba-46b6-8ad4-e0eee521186b", + "type": "LVGLLabelWidget", + "left": 417, + "top": 4, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "972269c3-b179-4e07-8d99-9e6d84efaaf8", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDstParam2Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "56223022-348f-45a2-fd59-375285bbd805", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "79a14b8b-a706-4ef7-e8f1-f364bb7e54e5", + "type": "LVGLLabelWidget", + "left": 4, + "top": 42, + "width": 71, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "b726af9a-a0ee-42a6-9302-46879238436d", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDstParam3Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "cf6c3335-4e6c-4b1c-9877-3475a5ffb89b", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param3", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "0b11c973-7fe9-4b91-b264-aec5ae084778", + "type": "LVGLSliderWidget", + "left": 113, + "top": 42, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "7a51db5f-8d5e-4902-f196-a6f96975933e", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "1f2e5b8e-be2b-4c0a-d929-ff65c8b15e25", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValDstParam3Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "d9f6fc7b-7e3d-4e6b-dec3-4770c54acaca", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "d464cf72-a1b0-430d-8c71-04a6e4063b11", + "type": "LVGLLabelWidget", + "left": 417, + "top": 42, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "af12c4e5-79dc-4b59-8007-0ead30c820c4", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDstParam3Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "806ecd77-794e-4331-dca5-6bbcf1d977fd", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "049c965d-7691-443d-e865-ddebff6557fe", + "type": "LVGLLabelWidget", + "left": 4, + "top": 80, + "width": 73, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "d8759ff0-2607-48ad-baf7-90b83d00a346", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDstParam4Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "9ff02adb-aa2e-462e-b51d-ac19d29dc5ed", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param4", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "2b0c2c79-5649-46f2-8f98-80ba4acdf0e2", + "type": "LVGLSliderWidget", + "left": 113, + "top": 80, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "5acd8db2-5b29-44ee-cd25-e7f01b0b8acc", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "f507f01b-28a1-4947-cbe8-e1cd27a7ac1a", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValDstParam4Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "19b9eced-521a-48ab-d0ca-c24bce7075b4", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "f3ebea6e-1bc7-4837-a7b7-826988c126e7", + "type": "LVGLLabelWidget", + "left": 417, + "top": 80, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "cb7e092d-38ee-41b6-ec2e-6a24fb807fda", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDstParam4Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "9cf5c9a4-2c7a-48c5-d79a-a901d6097346", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "off", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "e71527c8-e620-4204-a6ba-c501eba4edf6", + "definition": { + "MAIN": { + "CHECKED": { + "text_color": "FB9230", + "bg_color": "513D2B", + "text_font": "MONTSERRAT_20" + }, + "DEFAULT": { + "text_font": "MONTSERRAT_20", + "pad_top": 0, + "pad_bottom": 0, + "pad_left": 0, + "pad_right": 0, + "pad_row": 0, + "pad_column": 0, + "border_width": 2, + "border_color": "373737" + } + } + } + }, + "group": "", + "groupIndex": 0, + "tabName": "Dst", + "tabNameType": "literal" + }, + { + "objID": "a739785e-8de7-4b0a-8575-496f1f5027f4", + "type": "LVGLTabWidget", + "left": 10, + "top": 9, + "width": 480, + "height": 268, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "614ef9e4-1be5-4627-cc64-9c786f193a06", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValAmpTab", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "6599bd38-0b7d-4b2e-fb5c-2008f1073748", + "type": "LVGLLabelWidget", + "left": 4, + "top": -110, + "width": 63, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "ff8e267c-1433-4296-802e-8d1693655e69", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValAmpBlockLabel", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "135e4633-5882-477c-8b31-55437cc25c3f", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "text_align": "AUTO", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Enable", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "442dfbf7-8505-4662-8556-71bb94deb4f3", + "type": "LVGLSwitchWidget", + "left": 113, + "top": -110, + "width": 60, + "height": 24, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "50d081c4-ec96-47a5-d0fd-4fb57fa48180", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "0ee611a7-5cd6-4671-aee1-79edd2b1fc21", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValAmpBlockSwitch", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CHECKABLE|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "8f29815e-ad86-46ba-aa71-a9ef6eaf404d", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + }, + "INDICATOR": { + "CHECKED": { + "bg_color": "#3890d5" + } + } + } + }, + "group": "", + "groupIndex": 0 + }, + { + "objID": "cd29d055-ada4-4a1e-8deb-dbb0c19ef83e", + "type": "LVGLDropdownWidget", + "left": 298, + "top": 1, + "width": 165, + "height": 38, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "a6b10b59-cb90-47b4-bac6-d3ca9a3f16d3", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [ + { + "objID": "5918e0aa-0688-4d16-8be5-265fac9c3b5a", + "eventName": "VALUE_CHANGED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValAmpModelDropdown", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "1ab7287c-d203-4b00-b4cd-59594f5c2f37", + "type": "LVGLContainerWidget", + "left": 0, + "top": 0, + "width": 130, + "height": 130, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "cf1505c1-4601-444b-d305-e7188765c119", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "76978ca5-a560-4d96-dc50-b1f5a347d708", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_18" + } + }, + "SELECTED": { + "DEFAULT": { + "bg_color": "#3890d5" + }, + "CHECKED": { + "bg_color": "#3890d5", + "text_font": "MONTSERRAT_18" + } + } + } + }, + "group": "", + "groupIndex": 0 + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "d7a29b1d-cd19-4270-8b73-d0b912074fbb", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_18" + } + }, + "SELECTED": { + "CHECKED": { + "bg_color": "#ffffff" + }, + "DEFAULT": { + "bg_color": "#ffffff" + }, + "CHECKED|PRESSED": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "options": "Tweedy\nBellman 59N\nDark Twin\nFoxy 30N\nJ-120 CL\nMatch CL\nL-Star CL\nUK 45\nUK 50JP\nUK 800\nBellman 59B\nFoxy 30TB\nSup Dual OD\nSolo100 OD\nZ38 OD\nBad KT OD\nJuiceW R100\nDizz VH\nDizz VH+\nEagle 120\nEV51\nSolo100 LD\nMess Dual V\nMess Dual M\nPower LD\nFlagman+\nBog Red V\nClassic Bass\nFoxy Bass\nMess Bass\nAC Pre 1\nAC Pre 2\n", + "optionsType": "literal", + "selected": 0, + "selectedType": "literal", + "direction": "bottom" + }, + { + "objID": "e4972348-a52a-4143-aaf1-9be48d96196a", + "type": "LVGLLabelWidget", + "left": 4, + "top": -72, + "width": 73, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "53d27a7f-9b30-4565-c7b1-7ce4b9f0643f", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValAmpParam0Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "0ee9f168-cb11-4f5b-83c1-47ae2cb16adf", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "163ecd08-92e0-4c52-8010-beddad7679e8", + "type": "LVGLSliderWidget", + "left": 113, + "top": -72, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "5584ee21-635f-48f2-96c4-3b0336d60e32", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "54a37ce0-8b71-4647-b9d2-e95593d4c9b6", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValAmpParam0Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "5079214b-7565-4868-c343-7a5c1da8e895", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "d59bc5e1-d1de-4855-ef15-a7d8d9b438eb", + "type": "LVGLLabelWidget", + "left": 417, + "top": -72, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "328581f0-b498-41ab-8c87-9261a5272f25", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValAmpParam0Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "40160333-264a-4a1a-a286-0520214aadbc", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "df5f1b8d-3358-4000-f7d1-656875d99194", + "type": "LVGLLabelWidget", + "left": 4, + "top": -34, + "width": 68, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "1af0449b-f965-4b0e-e0ab-d8aa669f5291", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValAmpParam1Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "85f8fb63-d058-46d7-d843-0c0cc26656de", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param1", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "7f232add-0293-4c7f-9fbe-946372d1ddc3", + "type": "LVGLSliderWidget", + "left": 113, + "top": -34, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "fb8400c5-1b52-4b33-e7f8-a4468fefe805", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "42e293be-4792-4945-9330-7d903eac926a", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValAmpParam1Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "e7891127-e2d5-403d-da96-cd5ba2b1b77a", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "b2b7ec83-9930-47cd-da1b-f73ef634c71f", + "type": "LVGLLabelWidget", + "left": 417, + "top": -34, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "5161e241-312e-4be8-f414-39d7344e67dc", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValAmpParam1Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "92e96374-11ae-44bc-fb3b-174894a0bc0a", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "509a69f9-2afe-4257-f6cf-3385d47eb25c", + "type": "LVGLLabelWidget", + "left": 4, + "top": 4, + "width": 71, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "a094a918-e1dd-4309-97c4-197e22e9c608", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValAmpParam2Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "b585d592-0bb1-4dc8-add9-74a0429e32de", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param2", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "82c7af80-8727-43e8-f941-2f380e9eb5b7", + "type": "LVGLSliderWidget", + "left": 113, + "top": 4, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "9d633c14-6044-4b5c-d8cd-5bc5f8bf58c2", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "bbdbc8ad-842d-49ae-bb5e-47f23cf55ebf", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValAmpParam2Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "0e4ff3d5-390d-4115-cd3d-40605211638e", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "3f2d00f3-47f2-46da-b454-5e96a0306659", + "type": "LVGLLabelWidget", + "left": 417, + "top": 4, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "6f80482a-d9da-491b-c1d2-74e8b088386f", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValAmpParam2Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "686b0b0c-4515-40f4-b9f8-24a9e820eb27", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "c2283361-04bf-4ad2-eb18-c4202105119e", + "type": "LVGLLabelWidget", + "left": 4, + "top": 42, + "width": 71, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "d798eb3d-dff8-4ff8-d7ea-43282cef0d79", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValAmpParam3Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "ce6d3777-f7a2-464b-95f3-4dc6e34a60c3", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param3", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "ca2973a0-807c-4450-f561-4a2f4797ba53", + "type": "LVGLSliderWidget", + "left": 113, + "top": 42, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "aa8a63c6-c14e-419a-ccd2-e4b0f398984e", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "61513737-9dce-4d1a-a92d-42f98efd6e61", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValAmpParam3Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "e9b01039-b51b-4a4f-c312-7cae874236e4", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "700819ab-dbed-4ae7-8615-47dbbe333666", + "type": "LVGLLabelWidget", + "left": 417, + "top": 42, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "50f21bf7-7a4d-462b-9d8e-3764ebf8b3ff", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValAmpParam3Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "6d68664e-dd32-4a04-c1b2-b06192435db0", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "dcb0557b-4173-46fc-e032-d168c0ab33d2", + "type": "LVGLLabelWidget", + "left": 4, + "top": 80, + "width": 73, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "a93ee5b1-ac3f-40e2-af72-5e3e50fe4624", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValAmpParam4Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "68bbcfa2-385f-4979-c1f1-16547a0553af", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param4", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "95d044ad-e33a-48fb-82fc-e3cf3778a11f", + "type": "LVGLSliderWidget", + "left": 113, + "top": 80, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "6073fe1d-50c1-4a45-b60d-159c52ff0038", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "30a5bf27-28a5-475d-977e-ba3e52c656b7", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValAmpParam4Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "d0e6193a-6a5f-4fe8-fc01-c5de3c5a46a4", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "fe083099-f472-4f25-f8ea-07cfe3d0803a", + "type": "LVGLLabelWidget", + "left": 417, + "top": 80, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "36915c91-4cbc-4431-8d9d-6af5d19f7951", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValAmpParam4Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "fa299b07-e76d-4f96-ecc4-baed30d2b12d", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "off", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "6d7e6d7a-10a4-4ea0-882c-7ed0aee3cc74", + "definition": { + "MAIN": { + "CHECKED": { + "text_color": "FB9230", + "bg_color": "513D2B", + "text_font": "MONTSERRAT_20" + }, + "DEFAULT": { + "text_font": "MONTSERRAT_20", + "pad_top": 0, + "pad_bottom": 0, + "pad_left": 0, + "pad_right": 0, + "pad_row": 0, + "pad_column": 0, + "border_width": 2, + "border_color": "373737" + } + } + } + }, + "group": "", + "groupIndex": 0, + "tabName": "Amp", + "tabNameType": "literal" + }, + { + "objID": "d54dc197-2b29-4369-b5af-8f9301b56c37", + "type": "LVGLTabWidget", + "left": 10, + "top": 9, + "width": 480, + "height": 268, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "e418644d-6ce1-442d-b46a-6d50f97e75f2", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValCabTab", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "770d2eb5-48ac-4af2-c244-ee86c7060215", + "type": "LVGLLabelWidget", + "left": 4, + "top": -110, + "width": 63, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "28f52e30-f678-4e7e-eb66-fc36337c2196", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValCabBlockLabel", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "f6dc2591-e0c7-4733-e10a-08b07c8ce7f1", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "text_align": "AUTO", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Enable", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "07d9440c-426f-479a-c874-c86d205e11ec", + "type": "LVGLSwitchWidget", + "left": 113, + "top": -110, + "width": 60, + "height": 24, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "791621f2-84fa-4a9d-88e8-580edeb7f0be", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "63290be0-674f-40fb-8763-a6c5ee1938e4", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValCabBlockSwitch", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CHECKABLE|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "76c5aa19-e06b-48c8-ca41-18dbb7d049b0", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + }, + "INDICATOR": { + "CHECKED": { + "bg_color": "#3890d5" + } + } + } + }, + "group": "", + "groupIndex": 0 + }, + { + "objID": "19fe8a48-3c3c-4679-aa80-dc0499997e23", + "type": "LVGLDropdownWidget", + "left": 298, + "top": 1, + "width": 165, + "height": 38, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "5771c385-c0d7-4fd4-de27-8d1c9fd5f446", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [ + { + "objID": "dc93fe15-97cf-46cf-d392-456ca6d509d1", + "eventName": "VALUE_CHANGED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValCabModelDropdown", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "e4900e02-eb6a-4d9c-ea49-5b451fa6476a", + "type": "LVGLContainerWidget", + "left": 0, + "top": 0, + "width": 130, + "height": 130, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "962b7a2b-1c3a-425b-ec74-a06474ce33ff", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "51a495b5-9584-49fc-fb9a-e5c653846a55", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_18" + } + }, + "SELECTED": { + "DEFAULT": { + "bg_color": "#3890d5" + }, + "CHECKED": { + "bg_color": "#3890d5", + "text_font": "MONTSERRAT_18" + } + } + } + }, + "group": "", + "groupIndex": 0 + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "d784033a-4e37-48c2-e783-75500a14cf47", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_18" + } + }, + "SELECTED": { + "CHECKED": { + "bg_color": "#ffffff" + }, + "DEFAULT": { + "bg_color": "#ffffff" + }, + "CHECKED|PRESSED": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "options": "Twd CP\nDark VIT\nFoxy 1x12\nL-Star 1x12\nDark CS 2x12\nDark Twin 2x12\nSup Star 2x12\nJ-120 2x12\nFoxy 2x12\nUK Grn 2x12\nUK Grn 4x12\nBog 4x12\nDizz 4x12\nEV 4x12\nSolo 4x12\nMess 4x12\nEagle 4x12\nJuice 4x12\nBellman 2x12\nAmpg 4x10", + "optionsType": "literal", + "selected": 0, + "selectedType": "literal", + "direction": "bottom" + }, + { + "objID": "fef9278d-a32a-4c7b-b4e8-80f81e298356", + "type": "LVGLLabelWidget", + "left": 4, + "top": -72, + "width": 73, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "47a73e18-66d4-4861-c220-e84d74a71d7b", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValCabParam0Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "60724b8f-ef8b-43f0-cc65-a023add41bf1", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "8d16e4ff-ae93-443e-c956-708f7aabd29f", + "type": "LVGLSliderWidget", + "left": 113, + "top": -72, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "d8a903c0-4932-464c-dc7d-909fb6bb9582", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "bf979fc3-e2d8-4056-c279-10e524e8f988", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValCabParam0Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "fe3f3b25-6cf5-4d39-e49a-c21e8f2a5e20", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "7a4ed7b9-74b5-48b9-cc2b-bfec1f2d3880", + "type": "LVGLLabelWidget", + "left": 417, + "top": -72, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "60612d5a-7a0b-4c3f-c668-2dd76e8bf5d5", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValCabParam0Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "d3aa36e0-27fc-463a-c726-0d781bc93284", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "85ae9dcb-3cae-4a34-b1ed-900b40a82f41", + "type": "LVGLLabelWidget", + "left": 4, + "top": -34, + "width": 68, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "af6df0e6-47fc-4593-c826-dfad36a6d467", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValCabParam1Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "8ad8c69a-bc21-4c47-9818-4486bca0dda6", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param1", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "ea5f3d79-9a2d-4e31-d10d-ff0ceb83b6de", + "type": "LVGLSliderWidget", + "left": 113, + "top": -34, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "e6c6ada7-fcd1-4738-a4ba-3d994cf8fb96", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "aeb27b24-b409-4074-f196-6a1014bb5b93", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValCabParam1Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "5ccfb096-8480-4d7b-b30d-5a52e8d167c8", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "5604f1b1-9bed-41fc-bf7d-b609543f792c", + "type": "LVGLLabelWidget", + "left": 417, + "top": -34, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "1b82bc62-7c3b-48f6-b17b-f7287bbf57d6", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValCabParam1Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "1d56a8a6-9f5c-4a9a-f308-e0d134a864bc", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "968f836e-57f3-467d-ff60-6be2d9b6bd07", + "type": "LVGLLabelWidget", + "left": 4, + "top": 4, + "width": 71, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "ab0e5858-9824-4749-a0e6-ea338489b9f2", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValCabParam2Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "a4153037-7ed9-433b-bcf5-a203815f20bc", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param2", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "967d3b92-502a-482a-ea68-09bfc6e6443a", + "type": "LVGLSliderWidget", + "left": 113, + "top": 4, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "21b14326-ae61-43b0-e693-f0d1a660b4b0", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "15963c48-8b11-4b4d-c798-d2bd8e60dfa7", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValCabParam2Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "38903dcd-6100-4908-b027-e3e221d96764", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "6ae33793-e7a8-4b7f-c001-ee62bfedae89", + "type": "LVGLLabelWidget", + "left": 417, + "top": 4, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "a2bc6b24-f192-45d4-88dd-eafc70f6ab98", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValCabParam2Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "c3230f6b-7018-4887-8433-b40f6d533843", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "4ae2750d-ea0b-424b-b5b2-3c3c280240a7", + "type": "LVGLLabelWidget", + "left": 4, + "top": 42, + "width": 71, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "5ca8b755-3a5a-41e3-a978-5f1aa06168b4", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValCabParam3Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "1e640999-0c51-490e-8426-b8d705a9eb14", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param3", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "0a46e4e5-8568-42d8-a5a6-5e03bf9a29ae", + "type": "LVGLSliderWidget", + "left": 113, + "top": 42, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "81da918e-2b7c-44e5-ec13-2c94413dd0a1", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "e21529f9-d973-4648-affa-951b4410e68b", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValCabParam3Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "56c16615-9299-416d-8166-c27b42e30eba", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "39a3f1d1-41da-44bc-ad8f-8c88f7ca3ee9", + "type": "LVGLLabelWidget", + "left": 417, + "top": 42, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "819575fa-8986-4334-8ec6-281a1fc3a11c", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValCabParam3Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "650cd603-a06f-4514-df4c-6e57c69e7837", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "68cb4e4b-2679-471e-b0e3-1a06628949ac", + "type": "LVGLLabelWidget", + "left": 4, + "top": 80, + "width": 73, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "2d8ceda4-7c69-47ac-daf6-30b03b114284", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValCabParam4Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "26492068-9c5d-4a23-fff5-dbe7f6257331", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param4", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "279fd811-425d-4d89-cc62-8c641fe65e74", + "type": "LVGLSliderWidget", + "left": 113, + "top": 80, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "cd51c8d9-8fc2-4d6f-fa2d-bdc9aa2dbac7", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "c21de9cc-81b9-41c7-d561-e2e1306a5949", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValCabParam4Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "f3f46cc1-c2b5-46e6-872b-29754730cbbc", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "2c95f850-5bef-4c4a-800b-87f7b37101ea", + "type": "LVGLLabelWidget", + "left": 417, + "top": 80, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "c081162d-97f7-4127-ff61-dc58ac923464", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValCabParam4Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "ec02fc96-6eb3-46ef-926a-a56202d6ae55", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "off", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "de57ae77-937b-4679-a8a9-f254bb343124", + "definition": { + "MAIN": { + "CHECKED": { + "text_color": "FB9230", + "bg_color": "513D2B", + "text_font": "MONTSERRAT_20" + }, + "DEFAULT": { + "text_font": "MONTSERRAT_20", + "pad_top": 0, + "pad_bottom": 0, + "pad_left": 0, + "pad_right": 0, + "pad_row": 0, + "pad_column": 0, + "border_width": 2, + "border_color": "373737" + } + } + } + }, + "group": "", + "groupIndex": 0, + "tabName": "Cab", + "tabNameType": "literal" + }, + { + "objID": "e47241a4-8d48-47d4-f520-372600aaddc8", + "type": "LVGLTabWidget", + "left": 10, + "top": 9, + "width": 480, + "height": 268, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "c0c2e13f-ad3b-45dc-d7ee-0ea486a1cfa7", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValEQTab", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "2828b067-5eac-46dd-e8ca-a6653d659802", + "type": "LVGLLabelWidget", + "left": 4, + "top": -110, + "width": 63, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "c2ccf6f1-7449-46fb-b34b-828c08e486d8", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValEQBlockLabel", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "88c19e2f-01de-44d8-8d3e-e19437be2e51", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "text_align": "AUTO", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Enable", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "f6d2f81d-aaa4-4d47-b0a4-e76d2eb036b5", + "type": "LVGLSwitchWidget", + "left": 113, + "top": -110, + "width": 60, + "height": 24, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "c8e50b29-a4cf-437c-e874-cce8f06645a6", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "43f9a1ea-503b-4028-8fde-b01f3a4500f8", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValEQBlockSwitch", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CHECKABLE|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "691a4e28-8c2b-41fb-d108-6234ba967d61", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + }, + "INDICATOR": { + "CHECKED": { + "bg_color": "#3890d5" + } + } + } + }, + "group": "", + "groupIndex": 0 + }, + { + "objID": "c9fad64a-4eda-4172-be00-3d3264b24b23", + "type": "LVGLDropdownWidget", + "left": 298, + "top": 1, + "width": 165, + "height": 38, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "e84d3f03-dfa4-441c-fd77-c437b6681d87", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [ + { + "objID": "ff0551dd-0707-4c99-fde0-ecf56f42994a", + "eventName": "VALUE_CHANGED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValEQModelDropdown", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "521447ef-b233-44a8-b757-2bc2c5421032", + "type": "LVGLContainerWidget", + "left": 0, + "top": 0, + "width": 130, + "height": 130, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "8075248c-65b0-42dc-c188-ea9673dd0615", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "b91b7bc0-94e1-4668-f0a8-4f96a06571c7", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_18" + } + }, + "SELECTED": { + "DEFAULT": { + "bg_color": "#3890d5" + }, + "CHECKED": { + "bg_color": "#3890d5", + "text_font": "MONTSERRAT_18" + } + } + } + }, + "group": "", + "groupIndex": 0 + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "7c9d347f-f7ca-41ed-d4d8-5be79cad8998", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_18" + } + }, + "SELECTED": { + "CHECKED": { + "bg_color": "#ffffff" + }, + "DEFAULT": { + "bg_color": "#ffffff" + }, + "CHECKED|PRESSED": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "options": "Guitar 1\nGuitar 2\nBass 1\nBass 2\nMess", + "optionsType": "literal", + "selected": 0, + "selectedType": "literal", + "direction": "bottom" + }, + { + "objID": "c33621a1-20cb-4632-cce8-cf867926d600", + "type": "LVGLLabelWidget", + "left": 4, + "top": -72, + "width": 73, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "bdb5d2eb-d436-4e15-a13e-a1f51ccd61df", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValEQParam0Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "8d8939f3-9e19-4224-941d-038fb2e4ff9e", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "45bab307-03dc-4956-f103-2dff61d05f95", + "type": "LVGLSliderWidget", + "left": 113, + "top": -72, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "b72a69bb-6ac6-4830-a395-ffa375891efd", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "c9a850ac-2a79-4fbb-c1d1-5ecacdaa1a51", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValEQParam0Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "ad258215-7dd1-460a-8f69-8b29a988f9f2", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "2da2b47f-4d1f-49a3-825e-6cf8e032dbf9", + "type": "LVGLLabelWidget", + "left": 417, + "top": -72, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "ba6dcf34-b0b1-40f1-d28d-7d3e05719bbd", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValEQParam0Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "b2cf5976-3cd1-4564-d05a-e2b6147dec74", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "72015f37-3c21-490f-dab4-d423ec88c100", + "type": "LVGLLabelWidget", + "left": 4, + "top": -34, + "width": 68, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "82ad782b-3c59-4d04-a547-ec9566c51bea", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValEQParam1Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "713bea0a-b0dc-437e-d06b-d583de2c2647", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param1", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "740d66e0-891f-4fb1-9fa0-f408fe8d95fd", + "type": "LVGLSliderWidget", + "left": 113, + "top": -34, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "a6e680e0-0c2e-499a-fbde-e09ab0d56b72", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "f7c01ade-c1bb-4cae-93c0-a99cc10cf827", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValEQParam1Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "bd600d76-d160-4192-e52e-4439b4d4ed58", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "3d447d55-3598-49e2-d5cc-324e115fd5fa", + "type": "LVGLLabelWidget", + "left": 417, + "top": -34, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "74fe43b9-72be-4e8f-ad3b-9e4b11eca2d9", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValEQParam1Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "31b6f43c-abd6-4f2b-bb8e-1511d45ef233", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "d3f6ae1e-9139-4961-d06e-ab2196353ec1", + "type": "LVGLLabelWidget", + "left": 4, + "top": 4, + "width": 71, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "cb4accf1-2d88-42a5-d264-e9846e71a8a8", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValEQParam2Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "b3733d21-0b8f-4e11-ad44-2d1b92b02b7e", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param2", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "916286d4-4076-4fba-ab70-fd1bf7bb6592", + "type": "LVGLSliderWidget", + "left": 113, + "top": 4, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "6a6df5ae-527d-4325-e48b-b3e99af8f42e", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "d50284c3-55ae-445a-fde8-442420daa930", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValEQParam2Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "4a95c9de-3864-49c4-c54b-737c48c00aa5", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "780eefef-689d-4a43-9a4e-ad2badeb4e66", + "type": "LVGLLabelWidget", + "left": 417, + "top": 4, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "61eb72e3-e806-4119-912b-c50d3d841688", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValEQParam2Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "79a108cc-e4eb-4ac0-b260-ceec2bb5fd27", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "5cf73d57-8a66-4811-dfeb-11cf083bb50c", + "type": "LVGLLabelWidget", + "left": 4, + "top": 42, + "width": 71, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "50d383cb-1677-4419-f9ee-d994d0ff7716", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValEQParam3Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "507b13ea-7038-44d5-af8b-dc69c8d7f197", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param3", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "e5c24ed5-fde8-4570-eb26-441867b11cc7", + "type": "LVGLSliderWidget", + "left": 113, + "top": 42, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "202d3acf-3ea4-4edb-ee38-398451fd940e", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "b9c47dc4-7f27-4991-81b8-310795fdb99b", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValEQParam3Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "9d9897a6-53be-44c2-ab5b-0b4b330fc013", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "f616a732-6e8f-4389-f224-c8b580794078", + "type": "LVGLLabelWidget", + "left": 417, + "top": 42, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "9568bf96-6326-446e-9750-0d5cc3094f9f", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValEQParam3Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "4d297258-b229-4acb-e039-7b9972542c5d", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "caa2ca2d-0783-458d-f032-185ade07ad34", + "type": "LVGLLabelWidget", + "left": 4, + "top": 80, + "width": 73, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "41c1b8da-2671-439b-e29d-6f63ad98f468", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValEQParam4Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "d0295eff-723a-479a-9736-bfd848da30b6", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param4", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "fde716d2-afad-485a-d121-94df1cfc20f3", + "type": "LVGLSliderWidget", + "left": 113, + "top": 80, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "5ec91acf-a22a-4d61-d2a1-391dd63a7e1f", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "74993f5c-654a-4226-a72c-fcea6bc7510f", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValEQParam4Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "bdbac25e-e26e-4576-d414-3cb87e42545d", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "0695145a-0848-4ac2-c249-38ab04256fdc", + "type": "LVGLLabelWidget", + "left": 417, + "top": 80, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "70ebeb34-eaf6-4119-c79f-589546188eca", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValEQParam4Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "c695d7f6-41a1-408b-c594-f4ebc26a6666", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "off", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "dc2008b2-eacd-4e90-f870-3d0d262c1831", + "definition": { + "MAIN": { + "CHECKED": { + "text_color": "FB9230", + "bg_color": "513D2B", + "text_font": "MONTSERRAT_20" + }, + "DEFAULT": { + "text_font": "MONTSERRAT_20", + "pad_top": 0, + "pad_bottom": 0, + "pad_left": 0, + "pad_right": 0, + "pad_row": 0, + "pad_column": 0, + "border_width": 2, + "border_color": "373737" + } + } + } + }, + "group": "", + "groupIndex": 0, + "tabName": "EQ", + "tabNameType": "literal" + }, + { + "objID": "633cc33d-5081-4543-fa09-7f27d95639b9", + "type": "LVGLTabWidget", + "left": 10, + "top": 9, + "width": 480, + "height": 268, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "25d03eec-aa89-41a4-d6a2-85d182e18f27", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValModTab", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "363ed0da-016d-48e2-d08d-ab33c281d877", + "type": "LVGLLabelWidget", + "left": 4, + "top": -110, + "width": 63, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "5ec41015-8c5b-41d4-c358-a00d322ba02d", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValModBlockLabel", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "aee3cc1c-298d-4abe-e595-b09e908988b1", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "text_align": "AUTO", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Enable", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "e27032d0-d27a-41d7-d9df-f96a525d4986", + "type": "LVGLSwitchWidget", + "left": 113, + "top": -110, + "width": 60, + "height": 24, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "8b5e608e-9af6-4164-b69d-32dcf91d1d22", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "6dc283dc-3882-4a2e-a5fa-f554e4fd6d14", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValModBlockSwitch", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CHECKABLE|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "8be4b87f-77d2-42f8-d030-f99c45e5518c", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + }, + "INDICATOR": { + "CHECKED": { + "bg_color": "#3890d5" + } + } + } + }, + "group": "", + "groupIndex": 0 + }, + { + "objID": "2b853ab7-1562-4a6b-c482-951d4639422d", + "type": "LVGLDropdownWidget", + "left": 298, + "top": 1, + "width": 165, + "height": 38, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "36ff7987-f9e9-4606-8d55-86313c1c6292", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [ + { + "objID": "53184a11-65f7-4561-e330-d74501251611", + "eventName": "VALUE_CHANGED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValModModelDropdown", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "b0451092-fa65-4d74-879c-603cae5073b7", + "type": "LVGLContainerWidget", + "left": 0, + "top": 0, + "width": 130, + "height": 130, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "76286b6e-68c6-4118-e9d2-67e5636b614b", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "caff8cfc-49be-40c2-c50c-77069fe9d6bf", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_18" + } + }, + "SELECTED": { + "DEFAULT": { + "bg_color": "#3890d5" + }, + "CHECKED": { + "bg_color": "#3890d5", + "text_font": "MONTSERRAT_18" + } + } + } + }, + "group": "", + "groupIndex": 0 + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "432bae8b-36df-477c-bb92-b5ac9adc597c", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_18" + } + }, + "SELECTED": { + "CHECKED": { + "bg_color": "#ffffff" + }, + "DEFAULT": { + "bg_color": "#ffffff" + }, + "CHECKED|PRESSED": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "options": "A-Chorus\nB-Chorus\nJet\nN-Jet\nO-Phase\nM-Vibe\nV-Roto\nVibrato\nO-Trem\nSine Trem\nBias Trem", + "optionsType": "literal", + "selected": 0, + "selectedType": "literal", + "direction": "bottom" + }, + { + "objID": "009cbf28-6389-41b8-fc48-6b2359e8f5a8", + "type": "LVGLLabelWidget", + "left": 4, + "top": -72, + "width": 73, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "9fed6573-48a4-4060-9934-828b0196b4bf", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValModParam0Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "a5ed7000-b51a-470a-e85c-eae3605ea687", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "a0409dc8-9adc-454c-ef7e-1cf5ff7f100f", + "type": "LVGLSliderWidget", + "left": 113, + "top": -72, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "0e955d90-6380-43ae-926c-504d70443cae", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "30bd60e2-9a1e-403c-a589-b7c5b68f4e01", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValModParam0Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "30afcecd-e783-4609-c463-2e27eb35b465", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "242ee02e-d708-4c73-8715-c8c749585770", + "type": "LVGLLabelWidget", + "left": 417, + "top": -72, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "34eef589-c5c2-4ac1-d14a-14090ab8e210", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValModParam0Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "10af5a5f-bea8-494a-b1ac-b7a2aa7d266a", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "cfaa974b-97cb-4aa0-c8dc-7783cf7966bc", + "type": "LVGLLabelWidget", + "left": 4, + "top": -34, + "width": 68, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "d36448fd-4b21-456e-ac5a-40e016bfdae2", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValModParam1Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "98404a96-d7ad-4494-8eb5-078f0812c246", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param1", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "cf232463-91d0-4953-8802-7da74f67ccb1", + "type": "LVGLSliderWidget", + "left": 113, + "top": -34, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "2258ac1d-9b8d-4b4a-9440-6f8e9274cfbf", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "5913b93f-6d44-48c4-eb97-2028e7277884", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValModParam1Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "d110566c-e46d-4e9e-a41e-f63df1e477b4", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "16d7af61-1bdb-457e-a5d7-56ca311da186", + "type": "LVGLLabelWidget", + "left": 417, + "top": -34, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "e841e4e8-a746-419f-8719-09b18e0ba0de", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValModParam1Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "91fce02e-3017-4cdc-c0d7-9e0f3007677a", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "12a64fad-63f1-4ca3-d22f-35f4f50b8c68", + "type": "LVGLLabelWidget", + "left": 4, + "top": 4, + "width": 71, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "75d9d670-faa2-4ccd-a736-3dfc347f3d87", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValModParam2Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "9e7b46c0-5deb-4133-c337-1a7ba087175f", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param2", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "53a67e44-d06e-46e3-8e82-337154d70805", + "type": "LVGLSliderWidget", + "left": 113, + "top": 4, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "cc0dca74-05de-4ace-8f88-e57067f462d8", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "fc3e2fc1-a622-471f-8335-ce6d8102b8e6", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValModParam2Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "efca56ef-123b-4b09-902e-e2af517d55f9", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "703c0bd1-d237-4637-da4c-e2ef651a18fd", + "type": "LVGLLabelWidget", + "left": 417, + "top": 4, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "ed405eff-67e3-4ec8-9528-1542180b969e", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValModParam2Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "804ebfc5-caa8-42be-bba5-c1a059f44117", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "5a6368b1-80a7-4aef-b444-61113a53cdf0", + "type": "LVGLLabelWidget", + "left": 4, + "top": 42, + "width": 71, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "15449922-abe4-4b23-a044-486fef726428", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValModParam3Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "6ff69739-683c-4eed-e206-85abff70c3ca", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param3", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "8e9f2caf-c8c8-4ba5-d57c-11967450478b", + "type": "LVGLSliderWidget", + "left": 113, + "top": 42, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "9e9d3f33-e0ae-48a5-e16a-8b15a084c6af", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "9fb46d51-e9fc-4a70-84be-ed17b893854f", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValModParam3Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "caad95b1-1137-4246-f01b-7bd3ccde6f06", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "17bffba6-5f70-4104-ee8c-33ecf4a78af9", + "type": "LVGLLabelWidget", + "left": 417, + "top": 42, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "acd8244a-c63e-4457-8829-c00305da0727", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValModParam3Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "fb08ce0d-56da-428b-b235-3183385450ec", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "ac3351aa-42e0-4c0b-aec9-5d6a08603401", + "type": "LVGLLabelWidget", + "left": 4, + "top": 80, + "width": 73, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "6d4f1732-9ab2-4ff8-ada2-498ce8def75c", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValModParam4Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "eb4e9e2a-4995-4bde-ec2a-4becbffa662d", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param4", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "19971912-6489-47c5-97c5-9b5fe000e6ed", + "type": "LVGLSliderWidget", + "left": 113, + "top": 80, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "2068142a-2228-43a3-9818-455a4b47e9dc", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "f875c4f7-b695-4551-b38c-1fe244b0b183", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValModParam4Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "635e385c-b989-4ceb-979a-9db44bfdb281", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "a5650971-024f-4f59-d298-d9dfd09b6bd0", + "type": "LVGLLabelWidget", + "left": 417, + "top": 80, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "d8cd3179-48da-4bf0-a1c9-7413ca70514c", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValModParam4Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "ffa36c60-f0cb-4541-ffe2-1711ba08e1fd", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "off", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "f6867992-e37d-4871-a86a-cfa4bcce1e9c", + "definition": { + "MAIN": { + "CHECKED": { + "text_color": "FB9230", + "bg_color": "513D2B", + "text_font": "MONTSERRAT_20" + }, + "DEFAULT": { + "text_font": "MONTSERRAT_20", + "pad_top": 0, + "pad_bottom": 0, + "pad_left": 0, + "pad_right": 0, + "pad_row": 0, + "pad_column": 0, + "border_width": 2, + "border_color": "373737" + } + } + } + }, + "group": "", + "groupIndex": 0, + "tabName": "Mod", + "tabNameType": "literal" + }, + { + "objID": "466d29f0-d8e3-4931-e1ef-0d64fee37562", + "type": "LVGLTabWidget", + "left": 10, + "top": 9, + "width": 480, + "height": 268, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "5718c177-5190-4eb6-941f-2f129a8561d8", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDlyTab", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "1b37f408-bc4a-4c35-9f6c-e520de1bccf2", + "type": "LVGLLabelWidget", + "left": 4, + "top": -110, + "width": 63, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "362f9c60-a19d-4722-923c-714dcfb74f3c", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDlyBlockLabel", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "9a02a722-bbe8-4353-a841-d48652cf1942", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "text_align": "AUTO", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Enable", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "22b2d972-3ccc-4164-ce62-c782f411ae6b", + "type": "LVGLSwitchWidget", + "left": 113, + "top": -110, + "width": 60, + "height": 24, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "fd5561a0-f7cc-49ee-c7c2-7af9f2b92d43", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "61ac2872-39ed-4844-d9e6-d4d4480f3d5d", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValDlyBlockSwitch", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CHECKABLE|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "00c32fa8-4d7b-4597-de16-265eb194b8f3", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + }, + "INDICATOR": { + "CHECKED": { + "bg_color": "#3890d5" + } + } + } + }, + "group": "", + "groupIndex": 0 + }, + { + "objID": "2e99eadb-43d1-49f4-b08a-877b5a6547e8", + "type": "LVGLDropdownWidget", + "left": 298, + "top": 1, + "width": 165, + "height": 38, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "966e926f-3a45-4790-a9e3-ba317e6dbdcf", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [ + { + "objID": "5bad58ed-da3c-4422-a6ca-2ba390df0b43", + "eventName": "VALUE_CHANGED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValDlyModelDropdown", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "e831b37e-b5dd-4c60-9428-3f483d3e41b4", + "type": "LVGLContainerWidget", + "left": 0, + "top": 0, + "width": 130, + "height": 130, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "dd91099c-411d-40f2-9a3d-c5f6d7466185", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "6f32973c-099b-448a-97b8-b2e7751c5449", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_18" + } + }, + "SELECTED": { + "DEFAULT": { + "bg_color": "#3890d5" + }, + "CHECKED": { + "bg_color": "#3890d5", + "text_font": "MONTSERRAT_18" + } + } + } + }, + "group": "", + "groupIndex": 0 + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "37dbf842-7cb1-4852-d27c-cd8a5e910561", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_18" + } + }, + "SELECTED": { + "CHECKED": { + "bg_color": "#ffffff" + }, + "DEFAULT": { + "bg_color": "#ffffff" + }, + "CHECKED|PRESSED": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "options": "Pure\nAnalog\nSlapback\nSweet Echo\nTape\nTube\nRev Echo\nRing Echo\nSweep Echo\nPing Pong", + "optionsType": "literal", + "selected": 0, + "selectedType": "literal", + "direction": "bottom" + }, + { + "objID": "0c9b9390-662f-4d8d-efa2-36e8316e4a45", + "type": "LVGLLabelWidget", + "left": 4, + "top": -72, + "width": 73, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "b0946932-ff1a-4c2b-aeec-acfdfec8acbf", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDlyParam0Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "a5f877ca-e02d-46ce-c159-32af99c2e64b", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "b0ca7fab-8a8f-4d7c-9765-6c2950e18350", + "type": "LVGLSliderWidget", + "left": 113, + "top": -72, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "5f01b273-e192-49f0-e469-71e8715696ca", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "c5e9e4db-1930-48e7-b55f-15d26c6eb0f9", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValDlyParam0Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "56b418c6-96ed-4eaa-8a40-48a327cca5bf", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "72f7d450-e8f5-424f-df23-8f705831470b", + "type": "LVGLLabelWidget", + "left": 417, + "top": -72, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "b214e1aa-37c2-4fc7-8cd4-e1792c5f6e99", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDlyParam0Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "f209438b-a307-4542-a01a-056859434d67", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "23a0f4cd-d323-404d-a788-7c1684a82339", + "type": "LVGLLabelWidget", + "left": 4, + "top": -34, + "width": 68, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "10fa9160-7228-431f-80bd-ae87d7bb8a9c", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDlyParam1Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "35b29fab-0704-4240-8ede-dcba199b65a3", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param1", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "4336b87b-a4a9-4189-e9fe-4ec8a627a707", + "type": "LVGLSliderWidget", + "left": 113, + "top": -34, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "c6f48d66-e884-4540-9d0b-832fd7dbba03", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "a9417b05-14b4-4c5c-ef25-a452195db538", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValDlyParam1Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "96f61c22-40b5-4b74-f098-522bbdc1151e", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "374b5b3a-c665-423c-d0bb-70caeb430374", + "type": "LVGLLabelWidget", + "left": 417, + "top": -34, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "82956bd1-a05e-44e4-9d37-866a269d9720", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDlyParam1Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "1f88b05d-74aa-4384-97c3-e30a4dbab4a5", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "0a4d4b1e-51e9-4116-88ff-d0fb10daed6a", + "type": "LVGLLabelWidget", + "left": 4, + "top": 4, + "width": 71, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "df11ae57-582e-466f-f4cc-97fb73171514", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDlyParam2Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "edf61c5c-bcd1-47b1-dea4-0f82fedf079f", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param2", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "f7536faf-7dcc-4462-e41a-db2ebcb9253f", + "type": "LVGLSliderWidget", + "left": 113, + "top": 4, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "ea917c70-977c-44ed-a862-732a3e2d49c8", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "0c79e159-76c1-467e-b8a5-8d283163b2a7", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValDlyParam2Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "3e08925f-a8d7-40d3-c7b9-f98893b15c18", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "66a5103e-6128-4afb-f04a-98f981902c8f", + "type": "LVGLLabelWidget", + "left": 417, + "top": 4, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "0fb9b1b8-7ec0-4367-c8a3-4bc8f30eead4", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDlyParam2Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "a8ff70a5-0c5e-4b46-a421-6a47e161a2dd", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "e8bc7acb-8db0-4917-fcff-2e63b7ff0f1c", + "type": "LVGLLabelWidget", + "left": 4, + "top": 42, + "width": 71, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "354ef881-e463-4c17-c8cf-ac6d6ee5e0e6", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDlyParam3Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "f627f5f1-3a7d-47f8-a60c-f674ac14db64", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param3", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "c843f6b2-d3da-4f02-d045-4617292a7f36", + "type": "LVGLSliderWidget", + "left": 113, + "top": 42, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "11bd961b-1386-4c4b-e293-273762d73f61", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "d1046a00-ddfd-488c-bdea-53f6087f1769", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValDlyParam3Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "1e002d95-9d58-46d1-afd5-07ca6fb8ef9e", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "7a2f544c-c4e2-40b3-8af1-bfd2d0e06529", + "type": "LVGLLabelWidget", + "left": 417, + "top": 42, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "d04a5507-f48e-4629-d15c-c0cb101a97a6", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDlyParam3Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "5e99d942-5275-47b6-827a-6b57ef219465", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "b2016ff0-cb21-4177-a53d-86275776acc4", + "type": "LVGLLabelWidget", + "left": 4, + "top": 80, + "width": 73, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "5f0dc0da-f0c0-4f84-b990-82c7e20f1b8f", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDlyParam4Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "718f85aa-6c18-431c-d120-b1db3ae04c76", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param4", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "f85ddca6-6f4a-4d4c-8504-7e768180ee10", + "type": "LVGLSliderWidget", + "left": 113, + "top": 80, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "9316b557-7e62-4c06-9bd9-f39f76f32434", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "f976bd0f-47e3-4df0-9595-054982a8a404", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValDlyParam4Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "a1313fb0-20df-4e58-cda4-5715148e4d3d", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "b6e7cb92-1afc-48b4-edbe-209d06a972c7", + "type": "LVGLLabelWidget", + "left": 417, + "top": 80, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "07bb9166-944a-41ee-94fa-9cdd9231a8ce", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValDlyParam4Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "4ccffe78-4008-4e3c-88b7-433b48b8181a", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "off", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "2ec73b29-4a24-40fa-8c82-628e869a20de", + "definition": { + "MAIN": { + "CHECKED": { + "text_color": "FB9230", + "bg_color": "513D2B", + "text_font": "MONTSERRAT_20" + }, + "DEFAULT": { + "text_font": "MONTSERRAT_20", + "pad_top": 0, + "pad_bottom": 0, + "pad_left": 0, + "pad_right": 0, + "pad_row": 0, + "pad_column": 0, + "border_width": 2, + "border_color": "373737" + } + } + } + }, + "group": "", + "groupIndex": 0, + "tabName": "Dly", + "tabNameType": "literal" + }, + { + "objID": "f1ce3be2-ab43-4a59-8783-ffb52abb4b59", + "type": "LVGLTabWidget", + "left": 10, + "top": 9, + "width": 480, + "height": 268, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "90dfac42-fa86-49c8-f0f1-42673b3a0f3f", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValRvbTab", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "aef499c6-bc04-4c11-bfa6-bfab684099a6", + "type": "LVGLLabelWidget", + "left": 4, + "top": -110, + "width": 63, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "246c04d1-2991-40e2-e08d-7929f7472d2b", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValRvbBlockLabel", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "37f68168-8724-4241-d0e4-57afe966d4d4", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "text_align": "AUTO", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Enable", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "5141ac44-7d85-479e-ef5b-e63b089e6c8b", + "type": "LVGLSwitchWidget", + "left": 113, + "top": -110, + "width": 60, + "height": 24, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "c7c23cd8-679d-48bb-e1bd-25e244ce7b8d", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "d90fb8a0-962d-4173-9cfc-4c6b05a4f5fa", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValRvbBlockSwitch", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CHECKABLE|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "aef13c2a-e917-4ab6-9a73-7c9753dbef92", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + }, + "INDICATOR": { + "CHECKED": { + "bg_color": "#3890d5" + } + } + } + }, + "group": "", + "groupIndex": 0 + }, + { + "objID": "f669fb27-0455-4d77-817f-308e77b126ba", + "type": "LVGLDropdownWidget", + "left": 298, + "top": 1, + "width": 165, + "height": 38, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "4276a618-6e3e-4cb8-b62c-ad2984cf57d9", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [ + { + "objID": "b7bec17f-de3f-4d6c-d08f-5e21454b87fa", + "eventName": "VALUE_CHANGED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValRvbModelDropdown", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "f490f2e2-f460-459b-93de-7b434ab45ecb", + "type": "LVGLContainerWidget", + "left": 0, + "top": 0, + "width": 130, + "height": 130, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "c009e6f4-6bd8-4b5e-e4bd-42ca40f99410", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "297b91ff-aac3-4c68-bee8-85bfb02f8a3f", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_18" + } + }, + "SELECTED": { + "DEFAULT": { + "bg_color": "#3890d5" + }, + "CHECKED": { + "bg_color": "#3890d5", + "text_font": "MONTSERRAT_18" + } + } + } + }, + "group": "", + "groupIndex": 0 + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "74c90158-11cd-448a-bc49-530dfb19f147", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_18" + } + }, + "SELECTED": { + "CHECKED": { + "bg_color": "#ffffff" + }, + "DEFAULT": { + "bg_color": "#ffffff" + }, + "CHECKED|PRESSED": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "options": "Air\nRoom\nHall\nChurch\nPlate L\nPlate\nSpring\nN-Star\nDeepsea\nSweet Space", + "optionsType": "literal", + "selected": 0, + "selectedType": "literal", + "direction": "bottom" + }, + { + "objID": "c6c3f18c-0213-4eff-c538-eb09d913d5cc", + "type": "LVGLLabelWidget", + "left": 4, + "top": -72, + "width": 73, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "b2068734-79d3-4275-9076-8db8c4fc78a3", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValRvbParam0Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "d40a84da-f8a8-4591-b1fa-9fa0998edec9", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "f24e21e3-5eb1-42f9-bb0f-168aa6dfbe47", + "type": "LVGLSliderWidget", + "left": 113, + "top": -72, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "4366635d-a536-4320-91a0-e1a89c2b16b3", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "a20c82ab-bd86-48ff-cb4e-0c652e33ce36", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValRvbParam0Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "72d435c5-e3a6-4ebe-a141-5c908ca0d1a1", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "4b5fb97f-0c36-456e-e620-810a30e3bf06", + "type": "LVGLLabelWidget", + "left": 417, + "top": -72, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "2d53cce3-62e8-4caf-cdaf-899a68f08da5", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValRvbParam0Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "88eddd73-a449-4a0a-e73c-272f5d25017e", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "63541407-d150-4c6f-edfb-d44b2db52e42", + "type": "LVGLLabelWidget", + "left": 4, + "top": -34, + "width": 68, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "1c03ab36-4dc6-467f-b06a-9a9501548bc1", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValRvbParam1Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "5ba91228-04c7-4035-9ed1-5bd1a6c91d53", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param1", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "0157dbf5-760b-4cea-b70a-223dbb710e2b", + "type": "LVGLSliderWidget", + "left": 113, + "top": -34, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "0b0a6bb1-10ad-4d4b-9528-09e96681d6f1", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "aea01293-cf09-4e6e-ac1a-04139c1fb3dc", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValRvbParam1Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "ea6e970c-041a-4f90-b156-e60431c86103", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "ba301622-c789-420f-84c4-3f045a3602b4", + "type": "LVGLLabelWidget", + "left": 417, + "top": -34, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "44a517e4-7468-4347-dcc4-529f760ed10a", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValRvbParam1Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "958fb903-df5f-41d2-a865-b628fa6222e1", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "ebb75a32-7030-416e-86b8-bdae7ad97bb2", + "type": "LVGLLabelWidget", + "left": 4, + "top": 4, + "width": 71, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "4dbb8e1c-f83a-447b-f29a-f12a4a6d9ace", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValRvbParam2Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "56234a2c-9be4-4cd9-db42-42a602c632bf", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param2", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "05a8caf6-6b60-4591-8b14-e3bb6ed77070", + "type": "LVGLSliderWidget", + "left": 113, + "top": 4, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "bdd4d512-cbf4-4dea-b203-972e594fd83d", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "ae5172fd-060f-495e-f20a-e145be341529", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValRvbParam2Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "916ef8f5-c398-4fa5-c80c-1545750635e4", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "b17fa26e-4964-4fa5-a073-08f8d9cc3622", + "type": "LVGLLabelWidget", + "left": 417, + "top": 4, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "0e784b91-8ab3-41a5-b8de-1aeec76fe3e4", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValRvbParam2Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "db28b81f-909b-449f-b9aa-f7ff7c926abb", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "e528da78-ce59-4ab2-864e-74ac970cdaa7", + "type": "LVGLLabelWidget", + "left": 4, + "top": 42, + "width": 71, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "dd91103e-e868-408e-eeb1-bf1c1e671af3", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValRvbParam3Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "8fa9ac69-b40b-4018-a15d-0cf7964553f0", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param3", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "03398a53-df23-4b0c-e33b-010618e1806d", + "type": "LVGLSliderWidget", + "left": 113, + "top": 42, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "35e04265-bad5-4002-986b-ea169d47c4f2", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "4ce8b974-c468-4ba6-8b72-eade17528ee2", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValRvbParam3Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "a9f88ee2-579a-4a59-f1a3-e85f13d334f9", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "c62293c7-f750-4647-91ac-62aa4c4f62bf", + "type": "LVGLLabelWidget", + "left": 417, + "top": 42, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "d80631b1-39d6-472e-bee7-54ce38aeb027", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValRvbParam3Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "fcb0e3da-4d9c-41b8-bc9d-c750ad4642f1", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "0e005fa3-0d04-44ec-91d2-e4c603346e36", + "type": "LVGLLabelWidget", + "left": 4, + "top": 80, + "width": 73, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "6ef83c8d-708e-4971-9b02-8085c6dff182", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValRvbParam4Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "159c7670-250d-4847-d6cc-98997e578dc8", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param4", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "995890a4-5e29-43f5-81b1-1c775ea64d5f", + "type": "LVGLSliderWidget", + "left": 113, + "top": 80, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "9e9a0a40-5d1b-4fc0-baa5-c4b59737117c", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "34b6a69d-2004-4929-8426-bc191a53130c", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValRvbParam4Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "8e5bfa8a-3c24-4448-d69f-669e4edd7652", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "b2a5be3c-58f0-4b18-c4fa-8162bdbc2540", + "type": "LVGLLabelWidget", + "left": 417, + "top": 80, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "d17cdc55-e6ac-409f-9cd3-f7151e5ed64a", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValRvbParam4Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "215977da-8bc6-49f3-bea4-2f6a3a34faf9", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "off", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "f66d870c-58eb-4031-e673-da5ae911f4cd", + "definition": { + "MAIN": { + "CHECKED": { + "text_color": "FB9230", + "bg_color": "513D2B", + "text_font": "MONTSERRAT_20" + }, + "DEFAULT": { + "text_font": "MONTSERRAT_20", + "pad_top": 0, + "pad_bottom": 0, + "pad_left": 0, + "pad_right": 0, + "pad_row": 0, + "pad_column": 0, + "border_width": 2, + "border_color": "373737" + } + } + } + }, + "group": "", + "groupIndex": 0, + "tabName": "Rvb", + "tabNameType": "literal" + }, + { + "objID": "9bfc7813-a12c-44b4-f7b4-79c9e6faade8", + "type": "LVGLTabWidget", + "left": 10, + "top": 9, + "width": 480, + "height": 268, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "1c7a3a6a-3614-4b55-ceef-fa226a597b7f", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNSTab", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "7876578b-0ad0-4b59-e5b8-b25756de9d77", + "type": "LVGLLabelWidget", + "left": 4, + "top": -110, + "width": 63, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "bffef212-3ab0-4962-be19-858574401e1e", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNSBlockLabel", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "2d8b434f-f46e-4a8e-92db-81c30f734a77", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "text_align": "AUTO", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Enable", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "1fc7535e-36fa-4d60-df53-0c4b5579a6c0", + "type": "LVGLSwitchWidget", + "left": 113, + "top": -110, + "width": 60, + "height": 24, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "f90e5f40-5190-4243-f64b-40eea2ffcc1d", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "2d8ac528-9686-499a-9440-9b91d560bafe", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValNSBlockSwitch", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CHECKABLE|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "afa4a07e-038d-433f-9f8c-2abbfb0d82b8", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + }, + "INDICATOR": { + "CHECKED": { + "bg_color": "#3890d5" + } + } + } + }, + "group": "", + "groupIndex": 0 + }, + { + "objID": "0782e7bd-7ec3-44d6-ef32-a0e3f3082f00", + "type": "LVGLDropdownWidget", + "left": 298, + "top": 1, + "width": 165, + "height": 38, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "beb088fa-80b1-477a-ad11-ed0a1a15bdcf", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [ + { + "objID": "0a58c987-3c72-4787-b33d-7210ad9758bb", + "eventName": "VALUE_CHANGED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValNSModelDropdown", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "cb64c10b-2253-4a36-ae5b-f5c15975cc59", + "type": "LVGLContainerWidget", + "left": 0, + "top": 0, + "width": 130, + "height": 130, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "8f5d5c36-bba0-4c18-c060-0e540acb73d6", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "5043b33e-8d21-4ed3-baab-7f5f73dd2ef2", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_18" + } + }, + "SELECTED": { + "DEFAULT": { + "bg_color": "#3890d5" + }, + "CHECKED": { + "bg_color": "#3890d5", + "text_font": "MONTSERRAT_18" + } + } + } + }, + "group": "", + "groupIndex": 0 + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "24e1702f-751b-4c95-d3ce-5a1b8dd9e8a3", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "#1F1F1F", + "text_font": "MONTSERRAT_18" + } + }, + "SELECTED": { + "CHECKED": { + "bg_color": "#ffffff" + }, + "DEFAULT": { + "bg_color": "#ffffff" + }, + "CHECKED|PRESSED": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "options": "Todo", + "optionsType": "literal", + "selected": 0, + "selectedType": "literal", + "direction": "bottom" + }, + { + "objID": "6dc74100-19a3-44fb-879f-a96db1a2e751", + "type": "LVGLLabelWidget", + "left": 4, + "top": -72, + "width": 73, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "2b5f77b9-47ee-43e2-c34c-07f799c7ce59", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNSParam0Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "63db61c1-1877-498f-b4c9-4709bd123863", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "72f5e6a4-50f9-4a7c-e2e9-5906bc1bb093", + "type": "LVGLSliderWidget", + "left": 113, + "top": -72, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "114efb9c-b92a-41d7-f8af-ad890f10920d", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "0ee500f4-f806-4ab9-e0af-6f0fb6ef85bc", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValNSParam0Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "729a2c86-67bd-4450-849e-6b8b88c8e526", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "983b5805-2566-4a5c-af0a-ded230e498a4", + "type": "LVGLLabelWidget", + "left": 417, + "top": -72, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "963a1141-bd2e-4c15-abfc-46a2d6bde6ad", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNSParam0Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "b0c2f0d8-683b-4484-cf8b-68085c0e9072", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "337744d0-0af1-46d1-994a-c8f4d80dd7f0", + "type": "LVGLLabelWidget", + "left": 4, + "top": -34, + "width": 68, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "63aec0c2-cec4-481c-9237-57dcb6f1e172", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNSParam1Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "8717255f-47f1-4d34-a979-01f7abcced19", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param1", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "320286a6-f85d-4f97-d993-a7b638c29156", + "type": "LVGLSliderWidget", + "left": 113, + "top": -34, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "3d12930f-b80d-40bd-b5ef-a40b6d257f54", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "2e19a174-1a00-4797-87be-69f9e5fc9dfe", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValNSParam1Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "41c21ddb-7ff5-4857-a855-435c6f6e971e", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "ede63e58-8c08-44df-81fd-7522a7e70d8f", + "type": "LVGLLabelWidget", + "left": 417, + "top": -34, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "37795c60-d374-4e31-eda7-2f905d9ed7fa", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNSParam1Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "67704846-c1a6-4930-b735-d2ec2ab0bddd", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "64cd6e7a-358e-4e3b-9341-9e5f62cf78f1", + "type": "LVGLLabelWidget", + "left": 4, + "top": 4, + "width": 71, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "2838958b-23e8-4a5e-ac95-7306a4dfa28f", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNSParam2Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "c8e3da7a-f370-4bb5-efa2-d8f6b5592913", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param2", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "eed838a7-b79c-4979-c4b7-57509360c0f4", + "type": "LVGLSliderWidget", + "left": 113, + "top": 4, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "90d8dd38-44ab-47c2-82fd-632f34543d4b", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "60f21270-4f27-43e3-e7db-ceacd0246d8a", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValNSParam2Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "51c8131c-bbd4-4e18-b166-34f5ca7bade5", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "0fe6ed64-4ebe-4bf1-b63d-497e786a7833", + "type": "LVGLLabelWidget", + "left": 413, + "top": 4, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "3f6d34fb-2890-452d-a854-de082c9b42be", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNSParam2Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "0e6f1ec4-20f6-436d-a66b-6711ad5bb772", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "b2cc775b-e2fe-42b5-c3fc-3535b48e2b9e", + "type": "LVGLLabelWidget", + "left": 4, + "top": 42, + "width": 71, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "7fc160d6-b55f-409d-fedc-70afab65f262", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNSParam3Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "501e7d7d-7d37-41ca-cab3-351229e9cde1", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param3", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "e577d296-bbff-41b6-ad3f-c517a056b486", + "type": "LVGLSliderWidget", + "left": 113, + "top": 42, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "7e7a9c67-95dc-403c-e472-d0980f0015c2", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "d60a866b-6512-4bd6-a1f1-5f19e9ab24dd", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValNSParam3Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "57bf38d5-8d05-424e-d814-d9dd66f8ccd5", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "99b69d8c-05e9-460c-a92c-cd4d52393b79", + "type": "LVGLLabelWidget", + "left": 413, + "top": 42, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "a6124d07-905d-48dd-c65e-2ca7144e7bd4", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNSParam3Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "e29f6330-e791-4f67-80a7-a34763d95529", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "1d0b9c41-8f74-4644-85e9-fde7228bd434", + "type": "LVGLLabelWidget", + "left": 4, + "top": 80, + "width": 73, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "8ba97afa-24f3-48c9-a793-584aee7dacd6", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNSParam4Label", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "b5787768-0c68-4261-b29f-daf9428a1ac8", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Param4", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "ba80b8b1-10ac-44d3-afaa-4274cec40c95", + "type": "LVGLSliderWidget", + "left": 113, + "top": 80, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "b347141f-0e78-4a44-c20e-7aa891d52b11", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "f0538888-3c2f-4506-b9c1-e9618567b9b0", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValNSParam4Slider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "b12961a9-0869-4cc1-cf74-f1064e0c49c0", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "2a899bc1-6dd5-47f9-8c29-d0b6cef14b9a", + "type": "LVGLLabelWidget", + "left": 417, + "top": 80, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "74f19f1c-aaea-414b-9b69-f489f3ab3d4e", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValNSParam4Value", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "6acfa79c-0b53-4133-f9f5-0a26317adbba", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "off", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "f125cd97-a537-4369-a5e2-79eaac0277c8", + "definition": { + "MAIN": { + "CHECKED": { + "text_color": "FB9230", + "bg_color": "513D2B", + "text_font": "MONTSERRAT_20" + }, + "DEFAULT": { + "text_font": "MONTSERRAT_20", + "pad_top": 0, + "pad_bottom": 0, + "pad_left": 0, + "pad_right": 0, + "pad_row": 0, + "pad_column": 0, + "border_width": 2, + "border_color": "373737" + } + } + } + }, + "group": "", + "groupIndex": 0, + "tabName": "NS", + "tabNameType": "literal" + }, + { + "objID": "2bdccf63-36b8-4fde-a577-aab9f799100e", + "type": "LVGLTabWidget", + "left": 10, + "top": 9, + "width": 480, + "height": 268, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "f2034638-510c-4058-84e4-36795372d147", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": false, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValGlobTab", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [ + { + "objID": "c9c301c3-8979-46aa-8abd-ef637f3e8347", + "type": "LVGLLabelWidget", + "left": 4, + "top": -110, + "width": 67, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "4ee7263e-44f9-48ab-cc11-c24e5ea1f820", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValGlobNoCabLabel", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "7499b82e-8262-4575-99be-5f8b93e5573a", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "text_align": "AUTO", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "No Cab", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "789e416c-f656-4de5-e3dc-08b1479fe7bf", + "type": "LVGLSwitchWidget", + "left": 113, + "top": -110, + "width": 60, + "height": 24, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "54f552c6-9274-4ee7-9005-861a53821de5", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "e82f5f9d-e2c9-412a-86f2-13bae783ce01", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValGlobNoCabSwitch", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CHECKABLE|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_ON_FOCUS|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "55cd5b3b-1f44-4c1c-a57a-63d2c32699da", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + }, + "INDICATOR": { + "CHECKED": { + "bg_color": "#3890d5" + } + } + } + }, + "group": "", + "groupIndex": 0 + }, + { + "objID": "f96221fd-fd01-4677-e612-190f30320f6b", + "type": "LVGLLabelWidget", + "left": 4, + "top": -72, + "width": 102, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "900ad1cc-a0df-490a-c34a-f6961413565d", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValGlobInputLevelLabel", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "8480baf7-6726-4444-d343-c00289ca8c43", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Input Level", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "4417fd72-8e63-4151-f428-e965e5b66e72", + "type": "LVGLSliderWidget", + "left": 113, + "top": -72, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "507b18f8-9370-4f19-a253-55ad2dcee050", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "96e651dd-466f-451d-ed5f-b4478f46daa7", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValGlobInputLevelSlider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "8c07c8ff-a0f3-467c-a870-a3805c9fb535", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": -100, + "minType": "literal", + "max": -20, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "3315dfd7-88d5-4ff9-e530-9ba3e6d16cf7", + "type": "LVGLLabelWidget", + "left": 417, + "top": -72, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "97eb1816-2651-4b91-8212-c0da73716664", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValGlobInputLevelValue", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "473ac37c-cbb6-43c0-b5ef-86dd5dda2c48", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "off", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "14e52a9d-6767-4cb1-8eb2-de00d2fa6880", + "definition": { + "MAIN": { + "CHECKED": { + "text_color": "FB9230", + "bg_color": "513D2B", + "text_font": "MONTSERRAT_20" + }, + "DEFAULT": { + "text_font": "MONTSERRAT_20", + "pad_top": 0, + "pad_bottom": 0, + "pad_left": 0, + "pad_right": 0, + "pad_row": 0, + "pad_column": 0, + "border_width": 2, + "border_color": "373737" + } + } + } + }, + "group": "", + "groupIndex": 0, + "tabName": "Glob", + "tabNameType": "literal" + } + ], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "off", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedState": false, + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "f7c45a3f-53bc-4535-d2b9-93394a6149b9", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "1F1F1F", + "text_font": "MONTSERRAT_18", + "outline_color": "#3b3c40", + "outline_width": 3, + "bg_opa": 255 + }, + "CHECKED": { + "text_font": "MONTSERRAT_18", + "text_color": "FB9230", + "bg_opa": 255, + "bg_color": "#1f1f1f" + } + } + } + }, + "group": "", + "groupIndex": 0, + "tabviewPosition": "TOP", + "tabviewSize": 52 + }, + { + "objID": "d2793565-3886-41e7-f9ca-9582d42a2fea", + "type": "LVGLImageWidget", + "left": 202, + "top": 266, + "width": 87, + "height": 70, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "895521aa-27f0-495c-b0ba-d540fd74b968", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "3d8c4305-47c8-46b8-caa3-678de709d9b9", + "eventName": "PRESSED", + "handlerType": "action", + "action": "CloseSettingsPage", + "userData": 0 + } + ], + "identifier": "ui_ValCloseimage", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "ADV_HITTEST|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "d8eb91f4-497e-40d5-f20f-11c6d69d2119" + }, + "group": "", + "groupIndex": 0, + "image": "tick", + "setPivot": false, + "pivotX": 0, + "pivotY": 0, + "zoom": 120, + "angle": 0, + "innerAlign": "CENTER" + } + ], + "widgetFlags": "CLICKABLE|PRESS_LOCK|CLICK_FOCUSABLE|GESTURE_BUBBLE|SNAPPABLE|SCROLL_ELASTIC", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "5731cfd1-75b4-49e2-b2bc-756e032a4d4b", + "definition": { + "MAIN": { + "DEFAULT": { + "bg_color": "1F1F1F" + } + } + } + }, + "groupIndex": 0 + } + ], + "connectionLines": [], + "localVariables": [], + "userProperties": [], + "name": "ValSettings", + "left": 0, + "top": 0, + "width": 480, + "height": 320, + "isUsedAsUserWidget": false, + "createAtStart": true, + "deleteOnScreenUnload": false } ], "userWidgets": [], diff --git a/ui_design_480x320land/Tonex_Controller_480_320.eez-project-ui-state b/ui_design_480x320land/Tonex_Controller_480_320.eez-project-ui-state index 7e43395b..da054ae1 100644 --- a/ui_design_480x320land/Tonex_Controller_480_320.eez-project-ui-state +++ b/ui_design_480x320land/Tonex_Controller_480_320.eez-project-ui-state @@ -1,6 +1,6 @@ { "navigation": { - "selectedUserPageObject": "[Tonex_Controller_480_320.eez-project]:/userPages/0", + "selectedUserPageObject": "[Tonex_Controller_480_320.eez-project]:/userPages/2", "subnavigationSelectedItems": {} }, "layoutModel": { @@ -194,15 +194,16 @@ { "type": "tab", "id": "#dee75bb2-f325-4341-bdaa-55bf02902407", - "name": "Screen1", + "name": "ValSettings", "component": "editor", "config": { - "objectPath": "[Tonex_Controller_480_320.eez-project]:/userPages/0", + "objectPath": "[Tonex_Controller_480_320.eez-project]:/userPages/2", "permanent": false }, "icon": "svg:page" } - ] + ], + "active": true }, { "type": "row", @@ -222,8 +223,7 @@ "enableClose": false, "icon": "svg:properties" } - ], - "active": true + ] }, { "type": "tabset", @@ -976,14 +976,11 @@ "1": {}, "7": {}, "8": {}, - "9": {}, - "10": {}, - "13": {}, - "14": { - "9": { - "$selected": true - } - } + "10": { + "$selected": true + }, + "11": {}, + "12": {} } } }, @@ -992,7 +989,7 @@ "x": -494.8024350649359, "y": -373.6126443001434 }, - "scale": 2 + "scale": 1.75 }, "timeline": { "isEditorActive": false, @@ -1005,9 +1002,10 @@ "selection": { "0": { "0": { - "0": { - "$selected": true - } + "0": {} + }, + "1": { + "$selected": true } } }, @@ -1016,7 +1014,32 @@ "x": -463.8108225108226, "y": -332.91341991342006 }, - "scale": 2 + "scale": 1.25 + }, + "timeline": { + "isEditorActive": false, + "position": 0, + "secondToPx": 200, + "scrollLeft": 0 + } + }, + "[Tonex_Controller_480_320.eez-project]:/userPages/2[flow-state]": { + "selection": { + "0": { + "0": { + "0": { + "$selected": true + } + }, + "1": {} + } + }, + "transform": { + "translate": { + "x": -172.75081168831161, + "y": -191.27056277056272 + }, + "scale": 1.25 }, "timeline": { "isEditorActive": false, @@ -1045,6 +1068,6 @@ ], "showInactiveFlowsInDebugger": true, "globalFlowZoom": true, - "flowZoom": 2, + "flowZoom": 1.25, "implementationLanguage": "C" } \ No newline at end of file diff --git a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project index 33df0ee8..3e45efd4 100644 --- a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project +++ b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project @@ -1268,237 +1268,6 @@ "group": "", "groupIndex": 0 }, - { - "objID": "516fed02-ebdb-4c62-ba10-6f956fd361ca", - "type": "LVGLImageWidget", - "left": 88, - "top": 165, - "width": 68, - "height": 70, - "customInputs": [], - "customOutputs": [], - "style": { - "objID": "edaef75a-f2dd-4ddb-dc65-efe1b7588900", - "useStyle": "default", - "conditionalStyles": [], - "childStyles": [] - }, - "hiddenInEditor": true, - "timeline": [], - "eventHandlers": [ - { - "objID": "ad87a352-06aa-41e1-f3ee-0780e430f80e", - "eventName": "PRESSED", - "handlerType": "action", - "action": "AmpSkinPrevious", - "userData": 0 - } - ], - "identifier": "ui_LeftArrow", - "leftUnit": "px", - "topUnit": "px", - "widthUnit": "content", - "heightUnit": "content", - "children": [], - "widgetFlags": "ADV_HITTEST|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", - "hiddenFlag": true, - "hiddenFlagType": "literal", - "clickableFlag": true, - "clickableFlagType": "literal", - "flagScrollbarMode": "", - "flagScrollDirection": "", - "scrollSnapX": "", - "scrollSnapY": "", - "checkedStateType": "literal", - "disabledStateType": "literal", - "states": "", - "localStyles": { - "objID": "500161f4-bd26-4d5c-a3ae-e60cb8739dd1" - }, - "group": "", - "groupIndex": 0, - "image": "arrow_left", - "setPivot": false, - "pivotX": 0, - "pivotY": 0, - "zoom": 256, - "angle": 0, - "innerAlign": "CENTER" - }, - { - "objID": "58bfa162-b377-44c6-97b3-21456f87aed3", - "type": "LVGLImageWidget", - "left": 640, - "top": 165, - "width": 68, - "height": 70, - "customInputs": [], - "customOutputs": [], - "style": { - "objID": "cb19d612-39a7-468f-88d7-49a915ef2c86", - "useStyle": "default", - "conditionalStyles": [], - "childStyles": [] - }, - "hiddenInEditor": true, - "timeline": [], - "eventHandlers": [ - { - "objID": "ca7cfdcb-7ed4-4530-8706-d34014d24716", - "eventName": "PRESSED", - "handlerType": "action", - "action": "AmpSkinNext", - "userData": 0 - } - ], - "identifier": "ui_RightArrow", - "leftUnit": "px", - "topUnit": "px", - "widthUnit": "content", - "heightUnit": "content", - "children": [], - "widgetFlags": "ADV_HITTEST|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", - "hiddenFlag": true, - "hiddenFlagType": "literal", - "clickableFlag": true, - "clickableFlagType": "literal", - "flagScrollbarMode": "", - "flagScrollDirection": "", - "scrollSnapX": "", - "scrollSnapY": "", - "checkedStateType": "literal", - "disabledStateType": "literal", - "states": "", - "localStyles": { - "objID": "aca07045-df36-4cd0-8006-8fd925f9014d" - }, - "group": "", - "groupIndex": 0, - "image": "arrow_right", - "setPivot": false, - "pivotX": 0, - "pivotY": 0, - "zoom": 256, - "angle": 0, - "innerAlign": "CENTER" - }, - { - "objID": "e1c9173a-62a2-4cbe-dd94-6265baa09b9f", - "type": "LVGLKeyboardWidget", - "left": 0, - "top": 3, - "width": 800, - "height": 275, - "customInputs": [], - "customOutputs": [], - "style": { - "objID": "281cb968-3137-48c7-e2d1-ad3ac20d2b29", - "useStyle": "default", - "conditionalStyles": [], - "childStyles": [] - }, - "hiddenInEditor": true, - "timeline": [], - "eventHandlers": [ - { - "objID": "edcb82b5-7dee-4bef-a35e-14993c0bb8bd", - "eventName": "READY", - "handlerType": "action", - "action": "KeyboardOK", - "userData": 0 - } - ], - "identifier": "ui_EntryKeyboard", - "leftUnit": "px", - "topUnit": "px", - "widthUnit": "px", - "heightUnit": "px", - "children": [], - "widgetFlags": "GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", - "hiddenFlag": true, - "hiddenFlagType": "literal", - "clickableFlag": true, - "clickableFlagType": "literal", - "flagScrollbarMode": "", - "flagScrollDirection": "", - "scrollSnapX": "", - "scrollSnapY": "", - "checkedStateType": "literal", - "disabledState": false, - "disabledStateType": "literal", - "states": "", - "localStyles": { - "objID": "34cf5aa1-0712-4d74-94b3-b9f30d61c550", - "definition": { - "MAIN": { - "DEFAULT": { - "align": "DEFAULT" - } - } - } - }, - "group": "", - "groupIndex": 0, - "textarea": "ui_preset_details_text_area", - "mode": "TEXT_LOWER" - }, - { - "objID": "a7b62923-440e-4cf0-9e4e-a9583c0c7bd9", - "type": "LVGLImageWidget", - "left": 343, - "top": 405, - "width": 87, - "height": 70, - "customInputs": [], - "customOutputs": [], - "style": { - "objID": "cc507296-8ae7-46b3-b06b-bfcb5aacfcf9", - "useStyle": "default", - "conditionalStyles": [], - "childStyles": [] - }, - "hiddenInEditor": true, - "timeline": [], - "eventHandlers": [ - { - "objID": "18ae2bf7-d174-4fe7-c9be-49cb2defa225", - "eventName": "PRESSED", - "handlerType": "action", - "action": "SaveSkinEdit", - "userData": 0 - } - ], - "identifier": "ui_OKTick", - "leftUnit": "px", - "topUnit": "px", - "widthUnit": "content", - "heightUnit": "content", - "children": [], - "widgetFlags": "ADV_HITTEST|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", - "hiddenFlag": true, - "hiddenFlagType": "literal", - "clickableFlag": true, - "clickableFlagType": "literal", - "flagScrollbarMode": "", - "flagScrollDirection": "", - "scrollSnapX": "", - "scrollSnapY": "", - "checkedStateType": "literal", - "disabledStateType": "literal", - "states": "", - "localStyles": { - "objID": "c0fb173d-842d-4a19-cf5d-ba04f57f4cc3" - }, - "group": "", - "groupIndex": 0, - "image": "tick", - "setPivot": false, - "pivotX": 0, - "pivotY": 0, - "zoom": 256, - "angle": 0, - "innerAlign": "CENTER" - }, { "objID": "c5acbd04-2a91-4da0-a470-cec66a14bdc7", "type": "LVGLPanelWidget", @@ -2847,6 +2616,237 @@ }, "group": "", "groupIndex": 0 + }, + { + "objID": "516fed02-ebdb-4c62-ba10-6f956fd361ca", + "type": "LVGLImageWidget", + "left": 88, + "top": 165, + "width": 68, + "height": 70, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "edaef75a-f2dd-4ddb-dc65-efe1b7588900", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": true, + "timeline": [], + "eventHandlers": [ + { + "objID": "ad87a352-06aa-41e1-f3ee-0780e430f80e", + "eventName": "PRESSED", + "handlerType": "action", + "action": "AmpSkinPrevious", + "userData": 0 + } + ], + "identifier": "ui_LeftArrow", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "ADV_HITTEST|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlag": true, + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "500161f4-bd26-4d5c-a3ae-e60cb8739dd1" + }, + "group": "", + "groupIndex": 0, + "image": "arrow_left", + "setPivot": false, + "pivotX": 0, + "pivotY": 0, + "zoom": 256, + "angle": 0, + "innerAlign": "CENTER" + }, + { + "objID": "58bfa162-b377-44c6-97b3-21456f87aed3", + "type": "LVGLImageWidget", + "left": 640, + "top": 165, + "width": 68, + "height": 70, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "cb19d612-39a7-468f-88d7-49a915ef2c86", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": true, + "timeline": [], + "eventHandlers": [ + { + "objID": "ca7cfdcb-7ed4-4530-8706-d34014d24716", + "eventName": "PRESSED", + "handlerType": "action", + "action": "AmpSkinNext", + "userData": 0 + } + ], + "identifier": "ui_RightArrow", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "ADV_HITTEST|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlag": true, + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "aca07045-df36-4cd0-8006-8fd925f9014d" + }, + "group": "", + "groupIndex": 0, + "image": "arrow_right", + "setPivot": false, + "pivotX": 0, + "pivotY": 0, + "zoom": 256, + "angle": 0, + "innerAlign": "CENTER" + }, + { + "objID": "e1c9173a-62a2-4cbe-dd94-6265baa09b9f", + "type": "LVGLKeyboardWidget", + "left": 0, + "top": 3, + "width": 800, + "height": 275, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "281cb968-3137-48c7-e2d1-ad3ac20d2b29", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": true, + "timeline": [], + "eventHandlers": [ + { + "objID": "edcb82b5-7dee-4bef-a35e-14993c0bb8bd", + "eventName": "READY", + "handlerType": "action", + "action": "KeyboardOK", + "userData": 0 + } + ], + "identifier": "ui_EntryKeyboard", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlag": true, + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledState": false, + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "34cf5aa1-0712-4d74-94b3-b9f30d61c550", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "DEFAULT" + } + } + } + }, + "group": "", + "groupIndex": 0, + "textarea": "ui_preset_details_text_area", + "mode": "TEXT_LOWER" + }, + { + "objID": "a7b62923-440e-4cf0-9e4e-a9583c0c7bd9", + "type": "LVGLImageWidget", + "left": 343, + "top": 405, + "width": 87, + "height": 70, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "cc507296-8ae7-46b3-b06b-bfcb5aacfcf9", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "hiddenInEditor": true, + "timeline": [], + "eventHandlers": [ + { + "objID": "18ae2bf7-d174-4fe7-c9be-49cb2defa225", + "eventName": "PRESSED", + "handlerType": "action", + "action": "SaveSkinEdit", + "userData": 0 + } + ], + "identifier": "ui_OKTick", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "ADV_HITTEST|CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLLABLE|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlag": true, + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "c0fb173d-842d-4a19-cf5d-ba04f57f4cc3" + }, + "group": "", + "groupIndex": 0, + "image": "tick", + "setPivot": false, + "pivotX": 0, + "pivotY": 0, + "zoom": 256, + "angle": 0, + "innerAlign": "CENTER" } ], "widgetFlags": "CLICK_FOCUSABLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", diff --git a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state index 8a9342bb..55fd69b2 100644 --- a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state +++ b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state @@ -165,8 +165,7 @@ "enableClose": false, "icon": "svg:hierarchy" } - ], - "active": true + ] }, { "type": "tabset", @@ -204,7 +203,8 @@ }, "icon": "svg:page" } - ] + ], + "active": true }, { "type": "row", @@ -974,7 +974,9 @@ "selection": { "0": { "0": { - "$selected": true + "11": { + "$selected": true + } } } }, From 4fdb06da1e0b631a7dd46a60c1b2ac95cc69f6c7 Mon Sep 17 00:00:00 2001 From: Greg Smith Date: Fri, 14 Nov 2025 14:15:37 +1100 Subject: [PATCH 09/34] Updated git ignore files for new platforms and EEZ studio --- .gitignore | 28 +++++++--------------------- source/.gitignore | 2 ++ 2 files changed, 9 insertions(+), 21 deletions(-) diff --git a/.gitignore b/.gitignore index 813d1a78..36b741db 100644 --- a/.gitignore +++ b/.gitignore @@ -3,24 +3,10 @@ build_distrib/temp -# ignore SquareLine Studio files -ui_design/backup -ui_design/cache -ui_design/autosave -ui_design_0.85/backup -ui_design_0.85/cache -ui_design_0.85/autosave -ui_design_1.69/backup -ui_design_1.69/cache -ui_design_1.69/autosave -ui_design_1.69_land/backup -ui_design_1.69_land/cache -ui_design_1.69_land/autosave -ui_design_1.9/backup -ui_design_1.9/cache -ui_design_1.9/autosave -ui_design_480x320land/backup -ui_design_480x320land/cache -ui_design_480x320land/autosave - - +# ignore EEZ Studio files +ui_design_128x128/*.eez-project-ui-state +ui_design_240x280port/*.eez-project-ui-state +ui_design_280x240land/*.eez-project-ui-state +ui_design_320x170land/*.eez-project-ui-state +ui_design_480x320land/*.eez-project-ui-state +ui_design_800x480land/*.eez-project-ui-state diff --git a/source/.gitignore b/source/.gitignore index 4e9a03b9..b11b1054 100644 --- a/source/.gitignore +++ b/source/.gitignore @@ -18,6 +18,8 @@ build_lgtdisps3/ build_ws19t/ build_ws35b/ build_jc3248w/ +build_piratemax35/ +build_piratepro/ # ignore everything in managed components directory. Will be generated by the build system managed_components/ From 4dfc4b05daa070d52e67d3e187ad89bc0e313c39 Mon Sep 17 00:00:00 2001 From: Greg Smith Date: Fri, 14 Nov 2025 19:59:08 +1100 Subject: [PATCH 10/34] - changed led control to be more generic, and configured by menu config - more work on new platforms --- source/CMakeLists.txt | 2 +- source/main/Kconfig.projbuild | 34 +++++++- source/main/leds.c | 20 ++--- source/main/main.h | 45 +++++----- source/main/platform_pirate_max35.c | 121 ++++++++++++++++---------- source/main/platform_pirate_pro_169.c | 5 ++ source/sdkconfig.devkitc_N16R8 | 3 + source/sdkconfig.devkitc_N8R2 | 3 + source/sdkconfig.piratemax35 | 13 ++- source/sdkconfig.piratepro | 3 + source/sdkconfig.piratezero | 4 + source/sdkconfig.wszero | 3 + 12 files changed, 173 insertions(+), 83 deletions(-) diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 9186b4ed..d88d06ca 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -20,7 +20,7 @@ if(CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI) set(image_file ${project_dir}/skin_images/16bit/skins_minimal.bin) endif() - if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_35B OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_JC3248W535) + if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_35B OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_JC3248W535 OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_MAX_V2) set(image_file ${project_dir}/skin_images/16bitswapped/skins.bin) endif() diff --git a/source/main/Kconfig.projbuild b/source/main/Kconfig.projbuild index 0617693c..3e2f92ac 100644 --- a/source/main/Kconfig.projbuild +++ b/source/main/Kconfig.projbuild @@ -100,11 +100,41 @@ menu "Tonex Controller Configuration" Enable this option to show BPM indicator config TONEX_CONTROLLER_ENABLE_MIDI_THRU - bool "Enable Midi Thru" + bool "Enable Midi Thru" default "y" help Enable this option if the platform can support Midi Transmit - + + choice TONEX_CONTROLLER_LED_CONTROL_MODE + prompt "Led control mode" + default TONEX_CONTROLLER_LED_CONTROL_DISABLED + + config TONEX_CONTROLLER_LED_CONTROL_DISABLED + bool "Disabled" + + config TONEX_CONTROLLER_LED_CONTROL_BOOT_FLASH + bool "Boot flash" + endchoice + + choice TONEX_CONTROLLER_LED_COLOUR_ORDER + prompt "Led colour order" + default TONEX_CONTROLLER_LED_COLOUR_ORDER_RGB + + config TONEX_CONTROLLER_LED_COLOUR_ORDER_RGB + bool "RGB" + + config TONEX_CONTROLLER_LED_COLOUR_ORDER_GBR + bool "GBR" + + endchoice + + config TONEX_CONTROLLER_LED_NUMBER + int "Number of Leds" + range 0 16 + default 0 + help + Set the number of leds the platform has + config EXAMPLE_DOUBLE_FB bool "Use double Frame Buffer" default "n" diff --git a/source/main/leds.c b/source/main/leds.c index 58ac56ca..e635f056 100644 --- a/source/main/leds.c +++ b/source/main/leds.c @@ -42,8 +42,9 @@ limitations under the License. #include "usb_tonex_one.h" #include "leds.h" +#if !CONFIG_TONEX_CONTROLLER_LED_CONTROL_DISABLED + #define RMT_LED_STRIP_RESOLUTION_HZ 10000000 // 10MHz resolution, 1 tick = 0.1us (led strip needs a high resolution) -#define LED_NUMBER 1 enum LedStates { @@ -74,7 +75,7 @@ typedef struct uint32_t timer; uint32_t counter; - uint8_t led_strip_pixels[LED_NUMBER * 3]; + uint8_t led_strip_pixels[CONFIG_TONEX_CONTROLLER_LED_NUMBER * 3]; rmt_channel_handle_t led_chan; rmt_encoder_handle_t led_encoder; rmt_transmit_config_t tx_config; @@ -82,9 +83,7 @@ typedef struct static const char *TAG = "app_leds"; -#if CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_ZERO || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_DEVKITC static tLedControl LedControl; -#endif /**************************************************************************** * NAME: @@ -316,6 +315,7 @@ esp_err_t __attribute__((unused)) rmt_new_led_strip_encoder(const led_strip_enco return ret; } +#endif //CONFIG_TONEX_CONTROLLER_LED_CONTROL_DISABLED /**************************************************************************** * NAME: @@ -326,7 +326,7 @@ esp_err_t __attribute__((unused)) rmt_new_led_strip_encoder(const led_strip_enco *****************************************************************************/ void leds_handle(void) { -#if CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_ZERO || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_DEVKITC +#if !CONFIG_TONEX_CONTROLLER_LED_CONTROL_DISABLED uint32_t red = 0; uint32_t green = 0; uint32_t blue = 10; @@ -335,13 +335,13 @@ void leds_handle(void) { case LED_STATE_BOOT_FLASH_ON: { -#if CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_DEVKITC +#if CONFIG_TONEX_CONTROLLER_LED_COLOUR_ORDER_GBR // led is GBR colour order LedControl.led_strip_pixels[0] = green; LedControl.led_strip_pixels[1] = blue; LedControl.led_strip_pixels[2] = red; #endif -#if CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_ZERO +#if CONFIG_TONEX_CONTROLLER_LED_COLOUR_ORDER_RGB // led is RGB colour order LedControl.led_strip_pixels[0] = red; LedControl.led_strip_pixels[1] = green; @@ -396,7 +396,7 @@ void leds_handle(void) // nothing to do } break; } -#endif +#endif //CONFIG_TONEX_CONTROLLER_LED_CONTROL_DISABLED } /**************************************************************************** @@ -408,7 +408,7 @@ void leds_handle(void) *****************************************************************************/ void leds_init(void) { -#if CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_ZERO || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_DEVKITC +#if !CONFIG_TONEX_CONTROLLER_LED_CONTROL_DISABLED ESP_LOGI(TAG, "Leds Init start"); // init memory @@ -439,5 +439,5 @@ void leds_init(void) ESP_LOGI(TAG, "Enable RMT TX channel"); ESP_ERROR_CHECK(rmt_enable(LedControl.led_chan)); -#endif +#endif //CONFIG_TONEX_CONTROLLER_LED_CONTROL_DISABLED } diff --git a/source/main/main.h b/source/main/main.h index 3f6e44de..f852bc64 100644 --- a/source/main/main.h +++ b/source/main/main.h @@ -522,8 +522,8 @@ extern SemaphoreHandle_t I2CMutex_2; #elif CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_PRO // I2C bus 1 - #define I2C_MASTER_1_SCL_IO GPIO_NUM_10 - #define I2C_MASTER_1_SDA_IO GPIO_NUM_11 + #define I2C_MASTER_1_SCL_IO GPIO_NUM_12 // not actually used + #define I2C_MASTER_1_SDA_IO GPIO_NUM_13 // not actually used #define EXTERNAL_IO_EXPANDER_BUS I2C_MASTER_NUM_1 #define EXTERNAL_IO_EXPANDER_MUTEX I2CMutex_1 @@ -543,7 +543,11 @@ extern SemaphoreHandle_t I2CMutex_2; #define UART_TX_PIN GPIO_NUM_17 // leds - #define LED_OUTPUT_GPIO_NUM -1 + #define LED_OUTPUT_GPIO_NUM GPIO_NUM_1 + + // charger + #define LBO_STATUS GPIO_NUM_10 + #define CHARGE_STATUS GPIO_NUM_11 // LCD pins #define POLAR_PRO_240_280_LCD_GPIO_SCLK (GPIO_NUM_6) @@ -555,8 +559,8 @@ extern SemaphoreHandle_t I2CMutex_2; #elif CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_MAX_V2 // I2C bus 1 - #define I2C_MASTER_1_SCL_IO GPIO_NUM_7 - #define I2C_MASTER_1_SDA_IO GPIO_NUM_8 + #define I2C_MASTER_1_SCL_IO GPIO_NUM_41 + #define I2C_MASTER_1_SDA_IO GPIO_NUM_40 // I2C bus 2 #define I2C_MASTER_2_SCL_IO -1 @@ -565,27 +569,25 @@ extern SemaphoreHandle_t I2CMutex_2; #define EXTERNAL_IO_EXPANDER_BUS I2C_MASTER_NUM_1 #define EXTERNAL_IO_EXPANDER_MUTEX I2CMutex_1 - #define FOOTSWITCH_1 GPIO_NUM_38 - #define FOOTSWITCH_2 GPIO_NUM_39 - #define FOOTSWITCH_3 GPIO_NUM_40 - #define FOOTSWITCH_4 GPIO_NUM_41 + #define FOOTSWITCH_1 GPIO_NUM_2 + #define FOOTSWITCH_2 GPIO_NUM_4 + #define FOOTSWITCH_3 GPIO_NUM_5 + #define FOOTSWITCH_4 GPIO_NUM_6 // Midi: - #define UART_RX_PIN GPIO_NUM_17 - #define UART_TX_PIN GPIO_NUM_18 + #define UART_RX_PIN GPIO_NUM_10 + #define UART_TX_PIN GPIO_NUM_9 // leds - #define LED_OUTPUT_GPIO_NUM -1 + #define LED_OUTPUT_GPIO_NUM GPIO_NUM_1 // LCD pins - #define POLAR_MAX_35_LCD_GPIO_SCLK GPIO_NUM_5 - #define POLAR_MAX_35_LCD_GPIO_QSPI_0 GPIO_NUM_1 - #define POLAR_MAX_35_LCD_GPIO_QSPI_1 GPIO_NUM_2 - #define POLAR_MAX_35_LCD_GPIO_QSPI_2 GPIO_NUM_3 - #define POLAR_MAX_35_LCD_GPIO_QSPI_3 GPIO_NUM_4 - #define POLAR_MAX_35_LCD_GPIO_RST GPIO_NUM_NC - #define POLAR_MAX_35_LCD_GPIO_CS GPIO_NUM_12 - #define POLAR_MAX_35_LCD_GPIO_BL GPIO_NUM_6 + #define POLAR_MAX_35_LCD_GPIO_SCLK GPIO_NUM_47 + #define POLAR_MAX_35_LCD_GPIO_MOSI GPIO_NUM_21 + #define POLAR_MAX_35_LCD_GPIO_DC GPIO_NUM_14 + #define POLAR_MAX_35_LCD_GPIO_RST GPIO_NUM_13 + #define POLAR_MAX_35_LCD_GPIO_CS GPIO_NUM_48 + #define POLAR_MAX_35_LCD_GPIO_BL GPIO_NUM_39 // backlight #define POLAR_MAX_35_LCD_BL_LEDC_TIMER LEDC_TIMER_1 @@ -595,6 +597,9 @@ extern SemaphoreHandle_t I2CMutex_2; #define POLAR_MAX_35_LCD_BL_LEDC_DUTY (1024) // Set duty to 50%. (2 ** 13) * 50% = 4096 #define POLAR_MAX_35_LCD_BL_LEDC_FREQUENCY (10000) // Frequency in Hertz. Set frequency at 5 kHz + // Touch + #define TOUCH_INT GPIO_NUM_42 + #else #error "Unknown hardware platform!" #endif diff --git a/source/main/platform_pirate_max35.c b/source/main/platform_pirate_max35.c index 4f94fce0..99177619 100644 --- a/source/main/platform_pirate_max35.c +++ b/source/main/platform_pirate_max35.c @@ -75,8 +75,7 @@ limitations under the License. #include "tonex_params.h" #if CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_MAX_V2 - -// LCD: ST7796, touch: FT6336 +// LCD: ST7796, touch: GT911 static const char *TAG = "platform_piratemax35"; @@ -230,16 +229,20 @@ void platform_init(i2c_master_bus_handle_t bus_handle, SemaphoreHandle_t I2CMute __attribute__((unused)) esp_err_t ret = ESP_OK; uint8_t touch_ok = 0; I2CMutexHandle = I2CMutex; + gpio_config_t gpio_config_struct; disp_drv = pdisp_drv; ESP_LOGI(TAG, "Platform Init"); + //todo + // LED_OUTPUT_GPIO_NUM + /* LCD initialization */ ESP_LOGD(TAG, "Initialize SPI bus"); const spi_bus_config_t buscfg = { .sclk_io_num = POLAR_MAX_35_LCD_GPIO_SCLK, .mosi_io_num = POLAR_MAX_35_LCD_GPIO_MOSI, - .miso_io_num = POLAR_MAX_35_LCD_GPIO_MISO, + .miso_io_num = GPIO_NUM_NC, .quadwp_io_num = GPIO_NUM_NC, .quadhd_io_num = GPIO_NUM_NC, // note here: this value needs to be: POLAR_MAX_35_LCD_H_RES * POLAR_MAX_35_LCD_DRAW_BUFF_HEIGHT * sizeof(uint16_t) @@ -356,56 +359,83 @@ void platform_init(i2c_master_bus_handle_t bus_handle, SemaphoreHandle_t I2CMute ledc_set_duty(POLAR_MAX_35_LCD_BL_LEDC_MODE, POLAR_MAX_35_LCD_BL_LEDC_CHANNEL, duty); ledc_update_duty(POLAR_MAX_35_LCD_BL_LEDC_MODE, POLAR_MAX_35_LCD_BL_LEDC_CHANNEL); - // init touch screen - const esp_lcd_panel_io_i2c_config_t tp_io_config = { - .dev_addr = ESP_LCD_TOUCH_IO_I2C_FT6336_ADDRESS, - .control_phase_bytes = 1, - .dc_bit_offset = 0, - .lcd_cmd_bits = 8, - .flags.disable_control_phase = 1, - .scl_speed_hz = 400 * 1000 - }; + esp_lcd_panel_io_i2c_config_t tp_io_config = ESP_LCD_TOUCH_IO_I2C_GT911_CONFIG(); + tp_io_config.scl_speed_hz = 400000; - const esp_lcd_touch_config_t tp_cfg = { - .x_max = POLAR_MAX_35_LCD_H_RES, - .y_max = POLAR_MAX_35_LCD_V_RES, - .rst_gpio_num = GPIO_NUM_NC, - .int_gpio_num = GPIO_NUM_NC, - .interrupt_callback = touch_data_ready, - .flags = { - .swap_xy = 1, - .mirror_x = 0, - .mirror_y = 1, - }, - }; + // set Int pin to output temporarily + gpio_config_struct.pin_bit_mask = (uint64_t)1 << TOUCH_INT; + gpio_config_struct.mode = GPIO_MODE_OUTPUT; + gpio_config_struct.pull_up_en = GPIO_PULLUP_DISABLE; + gpio_config_struct.pull_down_en = GPIO_PULLDOWN_DISABLE; + gpio_config_struct.intr_type = GPIO_INTR_DISABLE; + gpio_config(&gpio_config_struct); + + // set Int to low/output + gpio_set_level(TOUCH_INT, 0); + esp_rom_delay_us(100 * 1000); + + // set interrupt to tristate + gpio_config_struct.mode = GPIO_MODE_INPUT; + gpio_config_struct.pull_down_en = GPIO_PULLDOWN_ENABLE; + gpio_config(&gpio_config_struct); // Touch IO handle if (esp_lcd_new_panel_io_i2c(bus_handle, &tp_io_config, &tp_io_handle) != ESP_OK) { - ESP_LOGE(TAG, "Touch IO handle failed!"); + ESP_LOGE(TAG, "Touch reset 3 failed!"); } + esp_lcd_touch_config_t tp_cfg = { + .x_max = POLAR_MAX_35_LCD_V_RES, + .y_max = POLAR_MAX_35_LCD_H_RES, + .rst_gpio_num = -1, + .int_gpio_num = -1, + .flags = { + .swap_xy = 0, + .mirror_x = 0, + .mirror_y = 0, + }, + }; + // Initialize touch - ESP_LOGI(TAG, "Initialize touch controller FT6336"); + ESP_LOGI(TAG, "Initialize touch controller GT911"); - if (xSemaphoreTake(I2CMutex, (TickType_t)10000) == pdTRUE) - { - ret = esp_lcd_touch_new_i2c_ft6336(tp_io_handle, &tp_cfg, &tp); - xSemaphoreGive(I2CMutex); - } - else + // try a few times + for (int loop = 0; loop < 5; loop++) { - ESP_LOGE(TAG, "Initialize touch mutex timeout"); - } + ret = ESP_FAIL; + + if (xSemaphoreTake(I2CMutexHandle, (TickType_t)10000) == pdTRUE) + { + ret = (esp_lcd_touch_new_i2c_gt911(tp_io_handle, &tp_cfg, &tp)); + + xSemaphoreGive(I2CMutexHandle); + } + else + { + ESP_LOGE(TAG, "Initialize touch loop mutex timeout"); + } - if (ret == ESP_OK) - { - ESP_LOGI(TAG, "Touch controller init OK"); - touch_ok = 1; + if (ret == ESP_OK) + { + ESP_LOGI(TAG, "Touch controller init OK"); + touch_ok = 1; + break; + } + else + { + ESP_LOGI(TAG, "Touch controller init retry %s", esp_err_to_name(ret)); + + // reset I2C bus + i2c_master_reset(); + } + + vTaskDelay(pdMS_TO_TICKS(25)); } - else + + if (ret != ESP_OK) { - ESP_LOGW(TAG, "Touch controller init failed %s", esp_err_to_name(ret)); + ESP_LOGE(TAG, "Failed to init touch screen"); } if (touch_ok) @@ -419,14 +449,13 @@ void platform_init(i2c_master_bus_handle_t bus_handle, SemaphoreHandle_t I2CMute lv_indev_drv_register(&indev_drv); } - //to do - //if (control_get_config_item_int(CONFIG_ITEM_SCREEN_ROTATION) == SCREEN_ROTATION_180) - //{ - // disp_drv->rotated = LV_DISP_ROT_180; + if (control_get_config_item_int(CONFIG_ITEM_SCREEN_ROTATION) == SCREEN_ROTATION_180) + { + disp_drv->rotated = LV_DISP_ROT_180; // can only do software rotation, with a drop in frame rate - // disp_drv->sw_rotate = 1; - //} + disp_drv->sw_rotate = 1; + } } #endif //CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_MAX_V2 \ No newline at end of file diff --git a/source/main/platform_pirate_pro_169.c b/source/main/platform_pirate_pro_169.c index b0e0c5b9..a54d0272 100644 --- a/source/main/platform_pirate_pro_169.c +++ b/source/main/platform_pirate_pro_169.c @@ -199,6 +199,11 @@ void platform_init(i2c_master_bus_handle_t bus_handle, SemaphoreHandle_t I2CMute ESP_LOGI(TAG, "Platform Init"); + // todo + // LED_OUTPUT_GPIO_NUM + // LBO_STATUS + // CHARGE_STATUS + disp_drv = pdisp_drv; // LCD backlight diff --git a/source/sdkconfig.devkitc_N16R8 b/source/sdkconfig.devkitc_N16R8 index e192222c..d13f521f 100644 --- a/source/sdkconfig.devkitc_N16R8 +++ b/source/sdkconfig.devkitc_N16R8 @@ -15,3 +15,6 @@ CONFIG_TONEX_CONTROLLER_HAS_DISPLAY=n CONFIG_TONEX_CONTROLLER_DISPLAY_SMALL=n CONFIG_TONEX_CONTROLLER_GPIO_FOOTSWITCHES=y CONFIG_SPIRAM_FETCH_INSTRUCTIONS=y +CONFIG_TONEX_CONTROLLER_LED_CONTROL_BOOT_FLASH=y +CONFIG_TONEX_CONTROLLER_LED_NUMBER=1 +CONFIG_TONEX_CONTROLLER_LED_COLOUR_ORDER_GBR=y diff --git a/source/sdkconfig.devkitc_N8R2 b/source/sdkconfig.devkitc_N8R2 index caf185d3..474c3ebd 100644 --- a/source/sdkconfig.devkitc_N8R2 +++ b/source/sdkconfig.devkitc_N8R2 @@ -15,3 +15,6 @@ CONFIG_TONEX_CONTROLLER_HAS_DISPLAY=n CONFIG_TONEX_CONTROLLER_DISPLAY_SMALL=n CONFIG_TONEX_CONTROLLER_GPIO_FOOTSWITCHES=y CONFIG_SPIRAM_FETCH_INSTRUCTIONS=n +CONFIG_TONEX_CONTROLLER_LED_CONTROL_BOOT_FLASH=y +CONFIG_TONEX_CONTROLLER_LED_NUMBER=1 +CONFIG_TONEX_CONTROLLER_LED_COLOUR_ORDER_GBR=y diff --git a/source/sdkconfig.piratemax35 b/source/sdkconfig.piratemax35 index 476e2e4d..d8ba7818 100644 --- a/source/sdkconfig.piratemax35 +++ b/source/sdkconfig.piratemax35 @@ -1,4 +1,4 @@ -# Settings for Waveshare 4.3B in Pirate Midi housing +# Settings for Pirate Midi custom 3.5" LCD with touch CONFIG_PARTITION_TABLE_CUSTOM=y CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions_16MB.csv" CONFIG_PARTITION_TABLE_FILENAME="partitions_16MB.csv" @@ -10,16 +10,21 @@ CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y CONFIG_ESPTOOLPY_FLASHSIZE="16MB" CONFIG_SPIRAM_MODE_OCT=y CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y -CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_MAX_V2 +CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_MAX_V2=y CONFIG_TONEX_CONTROLLER_SKINS_AMP=y CONFIG_TONEX_CONTROLLER_SKINS_PEDAL=y CONFIG_TONEX_CONTROLLER_HAS_DISPLAY=y CONFIG_TONEX_CONTROLLER_DISPLAY_SMALL=n -CONFIG_TONEX_CONTROLLER_GPIO_FOOTSWITCHES=n +CONFIG_TONEX_CONTROLLER_GPIO_FOOTSWITCHES=y CONFIG_TONEX_CONTROLLER_HAS_TOUCH=y CONFIG_TONEX_CONTROLLER_DEFAULT_MIDI_ENABLE=y CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI=y CONFIG_SPIRAM_FETCH_INSTRUCTIONS=y CONFIG_TONEX_CONTROLLER_SHOW_BPM_INDICATOR=y CONFIG_TONEX_CONTROLLER_ENABLE_MIDI_THRU=y - +CONFIG_LV_FONT_MONTSERRAT_18=y +CONFIG_LV_FONT_MONTSERRAT_22=y +CONFIG_LV_FONT_MONTSERRAT_32=y +CONFIG_TONEX_CONTROLLER_LED_CONTROL_BOOT_FLASH=y +CONFIG_TONEX_CONTROLLER_LED_NUMBER=4 +CONFIG_TONEX_CONTROLLER_LED_COLOUR_ORDER_GBR=y \ No newline at end of file diff --git a/source/sdkconfig.piratepro b/source/sdkconfig.piratepro index d5b60106..db3631cf 100644 --- a/source/sdkconfig.piratepro +++ b/source/sdkconfig.piratepro @@ -18,3 +18,6 @@ CONFIG_TONEX_CONTROLLER_DISPLAY_SMALL=y CONFIG_TONEX_CONTROLLER_GPIO_FOOTSWITCHES=y CONFIG_TONEX_CONTROLLER_DEFAULT_MIDI_ENABLE=y CONFIG_SPIRAM_FETCH_INSTRUCTIONS=y +CONFIG_TONEX_CONTROLLER_LED_CONTROL_BOOT_FLASH=y +CONFIG_TONEX_CONTROLLER_LED_NUMBER=4 +CONFIG_TONEX_CONTROLLER_LED_COLOUR_ORDER_GBR=y diff --git a/source/sdkconfig.piratezero b/source/sdkconfig.piratezero index c397784b..c8ca0040 100644 --- a/source/sdkconfig.piratezero +++ b/source/sdkconfig.piratezero @@ -14,3 +14,7 @@ CONFIG_TONEX_CONTROLLER_DISPLAY_SMALL=n CONFIG_TONEX_CONTROLLER_GPIO_FOOTSWITCHES=y CONFIG_TONEX_CONTROLLER_DEFAULT_MIDI_ENABLE=y CONFIG_SPIRAM_FETCH_INSTRUCTIONS=n +CONFIG_TONEX_CONTROLLER_LED_CONTROL_BOOT_FLASH=y +CONFIG_TONEX_CONTROLLER_LED_COLOUR_ORDER_RGB=y +CONFIG_TONEX_CONTROLLER_LED_NUMBER=1 + diff --git a/source/sdkconfig.wszero b/source/sdkconfig.wszero index 75ad566a..6894f85d 100644 --- a/source/sdkconfig.wszero +++ b/source/sdkconfig.wszero @@ -13,4 +13,7 @@ CONFIG_TONEX_CONTROLLER_HAS_DISPLAY=n CONFIG_TONEX_CONTROLLER_DISPLAY_SMALL=n CONFIG_TONEX_CONTROLLER_GPIO_FOOTSWITCHES=y CONFIG_SPIRAM_FETCH_INSTRUCTIONS=n +CONFIG_TONEX_CONTROLLER_LED_CONTROL_BOOT_FLASH=y +CONFIG_TONEX_CONTROLLER_LED_COLOUR_ORDER_RGB=y +CONFIG_TONEX_CONTROLLER_LED_NUMBER=1 From c1fad2469b8033a9d176bd885a45e8e0c082be1a Mon Sep 17 00:00:00 2001 From: Greg Smith Date: Sat, 15 Nov 2025 17:37:51 +1100 Subject: [PATCH 11/34] Working on GP5 globals --- .../main/ui_generated_480x320land/screens.c | 2 +- .../main/ui_generated_800x480land/screens.c | 2 +- source/main/usb_valeton_gp5.c | 356 ++++-------------- source/main/valeton_params.c | 12 +- source/main/valeton_params.h | 5 +- .../Tonex_Controller_480_320.eez-project | 2 +- .../Tonex_Controller_800_480land.eez-project | 2 +- 7 files changed, 84 insertions(+), 297 deletions(-) diff --git a/source/main/ui_generated_480x320land/screens.c b/source/main/ui_generated_480x320land/screens.c index 10ba5c62..b94e7154 100644 --- a/source/main/ui_generated_480x320land/screens.c +++ b/source/main/ui_generated_480x320land/screens.c @@ -4876,7 +4876,7 @@ void create_screen_val_settings() { objects.ui_val_ns_model_dropdown = obj; lv_obj_set_pos(obj, 298, 1); lv_obj_set_size(obj, 165, 38); - lv_dropdown_set_options(obj, "Todo"); + lv_dropdown_set_options(obj, "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n41\n42\n43\n44\n45\n46\n47\n48\n49\n50\n51\n52\n52\n53\n54\n55\n56\n57\n58\n59\n60\n61\n62\n63\n64\n65\n66\n67\n68\n69\n70\n71\n72\n73\n74\n75\n76\n77\n78\n79"); lv_dropdown_set_selected(obj, 0); lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); diff --git a/source/main/ui_generated_800x480land/screens.c b/source/main/ui_generated_800x480land/screens.c index e9034e1a..181a61ef 100644 --- a/source/main/ui_generated_800x480land/screens.c +++ b/source/main/ui_generated_800x480land/screens.c @@ -4864,7 +4864,7 @@ void create_screen_val_settings() { objects.ui_val_ns_model_dropdown = obj; lv_obj_set_pos(obj, 482, 8); lv_obj_set_size(obj, 280, LV_SIZE_CONTENT); - lv_dropdown_set_options(obj, "Todo"); + lv_dropdown_set_options(obj, "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n41\n42\n43\n44\n45\n46\n47\n48\n49\n50\n51\n52\n52\n53\n54\n55\n56\n57\n58\n59\n60\n61\n62\n63\n64\n65\n66\n67\n68\n69\n70\n71\n72\n73\n74\n75\n76\n77\n78\n79"); lv_dropdown_set_selected(obj, 0); lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_VALUE_CHANGED, (void *)0); lv_obj_set_style_bg_color(obj, lv_color_hex(0xff1f1f1f), LV_PART_MAIN | LV_STATE_DEFAULT); diff --git a/source/main/usb_valeton_gp5.c b/source/main/usb_valeton_gp5.c index 56e7f699..c5ebf2e1 100644 --- a/source/main/usb_valeton_gp5.c +++ b/source/main/usb_valeton_gp5.c @@ -149,7 +149,7 @@ static QueueHandle_t input_queue; static volatile tInputBufferEntry* InputBuffers; static uint8_t* ProcessingBuffer; static uint8_t* TransmitBuffer; -static uint8_t snaptone_sync_done = 0; +static uint8_t boot_sync_done = 0; static const EffectMapEntry_t effect_map_nr[] = { {VALETON_EFFECT_NR_GATE, 0x1B000000}, @@ -405,6 +405,7 @@ static void usb_valeton_gp5_set_effect_block_state(uint8_t block_index, uint8_t static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint32_t len) ; static void usb_valeton_gp5_request_ir(void); static void usb_valeton_gp5_request_nams(void); +static void usb_valeton_gp5_request_globals(void); /**************************************************************************** * NAME: @@ -861,6 +862,25 @@ static uint8_t usb_valeton_gp5_get_effect_block_index(uint32_t in, uint8_t block return 0; } +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +static int16_t usb_valeton_gp5_convert_hex_byte_pair_s16(uint8_t byte1, uint8_t byte2) +{ + int16_t value= (byte1 * 16) + byte2; + + if (value & 0x80) + { + value = value - 0x100; + } + + return value; +} + /**************************************************************************** * NAME: * DESCRIPTION: @@ -901,22 +921,52 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 case 0x10: { - // unknown - ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); + tModellerParameter* param_ptr; - ESP_LOGI(TAG, "Got unknown 0x10"); + ESP_LOGI(TAG, "Got Globals"); + + // debug + //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); + + // skip to mast volume + read_index += 40; - // example response - // f0 07 0f 00 01 00 00 04 0d 01 02 - // 01 00 00 01 00 01 00 04 00 00 00 06 00 00 00 01 00 - // 01 00 02 00 01 00 04 00 00 00 01 00 00 00 00 00 00 - // 00 02 00 02 00 04 00 00 02 0a 00 00 00 00 00 00 00 - // 01 00 02 00 01 00 00 00 00 00 03 00 02 00 01 00 00 - // 06 04 00 01 00 03 00 01 00 00 0f 0e 00 01 00 04 00 - // 01 00 00 00 00 00 02 00 04 00 01 00 00 00 00 00 03 - // 00 04 00 01 00 00 00 01 00 04 00 04 00 01 00 00 00 - // 01 00 05 00 04 00 01 00 00 00 00 00 03 00 03 00 01 - // 00 00 00 00 00 07 00 04 00 02 00 00 00 00 00 00 f7 + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + // master volume + param_ptr[VALETON_GLOBAL_MASTER_VOLUME].Value = (float)usb_valeton_gp5_convert_hex_byte_pair_s16(buffer[read_index], buffer[read_index + 1]); + read_index += 36; + + // get input trim + param_ptr[VALETON_GLOBAL_INPUT_TRIM].Value = (float)usb_valeton_gp5_convert_hex_byte_pair_s16(buffer[read_index], buffer[read_index + 1]); + read_index += 10; + + // rec level + param_ptr[VALETON_GLOBAL_RECORD_LEVEL].Value = (float)usb_valeton_gp5_convert_hex_byte_pair_s16(buffer[read_index], buffer[read_index + 1]); + read_index += 10; + + // mon level + param_ptr[VALETON_GLOBAL_MONITOR_LEVEL].Value = (float)usb_valeton_gp5_convert_hex_byte_pair_s16(buffer[read_index], buffer[read_index + 1]); + read_index += 10; + + // show BT level + param_ptr[VALETON_GLOBAL_BT_LEVEL].Value = (float)usb_valeton_gp5_convert_hex_byte_pair_s16(buffer[read_index], buffer[read_index + 1]); + read_index += 10; + + read_index += 21; + param_ptr[VALETON_GLOBAL_CABSIM_BYPASS].Value = (float)buffer[read_index]; + read_index += 10; + + // footswitch mode is next byte + + valeton_params_release_locked_access(); + } + + // debug + valeton_dump_parameters(); + + // request nams + usb_valeton_gp5_request_nams(); } break; case 0x1B: @@ -934,62 +984,6 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); ESP_LOGI(TAG, "Got IRs"); - - // contains the text "User" numerous times - - // example response - // 0000 f0 04 - // 0010 05 00 04 00 00 06 04 01 02 02 00 00 01 00 01 00 - // 0020 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 - // 0030 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 - // 0040 01 00 01 05 05 07 03 06 05 07 02 02 00 04 09 05 - // 0050 02 02 00 03 01 00 00 00 00 00 00 00 00 00 00 00 - // 0060 00 00 00 05 05 07 03 06 05 07 02 02 00 04 09 05 - // 0070 02 02 00 03 02 00 00 00 00 00 00 00 00 00 00 00 - // 0080 00 00 00 05 05 07 03 06 05 07 02 02 00 04 09 05 - // 0090 02 02 00 03 03 00 00 00 00 00 00 00 00 00 00 00 - // 00a0 00 00 00 05 05 07 03 06 05 07 02 02 00 04 09 05 - // 00b0 02 02 00 03 04 00 00 00 00 00 00 00 00 00 00 00 - // 00c0 00 00 00 05 05 07 03 06 05 07 02 02 00 04 09 05 - // 00d0 02 02 00 03 05 00 00 00 00 00 00 00 00 00 00 f7 - - // 0000 f0 07 - // 0010 03 00 04 00 01 06 04 00 00 00 00 05 05 07 03 06 - // 0020 05 07 02 02 00 04 09 05 02 02 00 03 06 00 00 00 - // 0030 00 00 00 00 00 00 00 00 00 00 00 05 05 07 03 06 - // 0040 05 07 02 02 00 04 09 05 02 02 00 03 07 00 00 00 - // 0050 00 00 00 00 00 00 00 00 00 00 00 05 05 07 03 06 - // 0060 05 07 02 02 00 04 09 05 02 02 00 03 08 00 00 00 - // 0070 00 00 00 00 00 00 00 00 00 00 00 05 05 07 03 06 - // 0080 05 07 02 02 00 04 09 05 02 02 00 03 09 00 00 00 - // 0090 00 00 00 00 00 00 00 00 00 00 00 05 05 07 03 06 - // 00a0 05 07 02 02 00 04 09 05 02 02 00 03 01 03 00 00 - // 00b0 00 00 00 00 00 00 00 00 00 00 00 05 05 07 03 06 - // 00c0 05 07 02 02 00 04 09 05 02 02 00 03 01 03 01 00 - // 00d0 00 00 00 00 00 00 00 00 00 00 00 05 05 07 03 f7 - - // 0000 f0 0d - // 0010 01 00 04 00 02 06 04 06 05 07 02 02 00 04 09 05 - // 0020 02 02 00 03 01 03 02 00 00 00 00 00 00 00 00 00 - // 0030 00 00 00 05 05 07 03 06 05 07 02 02 00 04 09 05 - // 0040 02 02 00 03 01 03 03 00 00 00 00 00 00 00 00 00 - // 0050 00 00 00 05 05 07 03 06 05 07 02 02 00 04 09 05 - // 0060 02 02 00 03 01 03 04 00 00 00 00 00 00 00 00 00 - // 0070 00 00 00 05 05 07 03 06 05 07 02 02 00 04 09 05 - // 0080 02 02 00 03 01 03 05 00 00 00 00 00 00 00 00 00 - // 0090 00 00 00 05 05 07 03 06 05 07 02 02 00 04 09 05 - // 00a0 02 02 00 03 01 03 06 00 00 00 00 00 00 00 00 00 - // 00b0 00 00 00 05 05 07 03 06 05 07 02 02 00 04 09 05 - // 00c0 02 02 00 03 01 03 07 00 00 00 00 00 00 00 00 00 - // 00d0 00 00 00 05 05 07 03 06 05 07 02 02 00 04 09 f7 - - // 0000 f0 07 - // 0010 01 00 04 00 03 02 0a 05 02 02 00 03 01 03 08 00 - // 0020 00 00 00 00 00 00 00 00 00 00 00 05 05 07 03 06 - // 0030 05 07 02 02 00 04 09 05 02 02 00 03 01 03 09 00 - // 0040 00 00 00 00 00 00 00 00 00 00 00 05 05 07 03 06 - // 0050 05 07 02 02 00 04 09 05 02 02 00 03 02 03 00 00 - // 0060 00 00 00 00 00 00 00 00 00 00 00 f7 } break; case 0x24: @@ -1001,214 +995,6 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 // request ITs usb_valeton_gp5_request_ir(); - - // example response - // 0000 f0 0d - // 0010 06 00 0e 00 00 06 04 01 02 02 04 00 01 00 01 00 - // 0020 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 - // 0030 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 - // 0040 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 - // 0050 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 - // 0060 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 - // 0070 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 - // 0080 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 - // 0090 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 - // 00a0 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00 - // 00b0 01 00 01 00 01 00 01 00 01 00 01 03 01 03 04 02 - // 00c0 00 04 04 05 03 05 04 00 00 00 00 00 00 00 00 00 - // 00d0 00 00 00 00 00 00 00 00 00 00 00 04 06 06 0f f7 - - // 0000 f0 0a - // 0010 0a 00 0e 00 01 06 04 07 02 06 03 06 05 02 00 04 - // 0020 0f 04 03 04 04 00 00 00 00 00 00 00 00 00 00 00 - // 0030 00 00 00 05 02 06 05 07 06 06 0f 06 0c 07 04 02 - // 0040 00 04 04 05 03 05 04 00 00 00 00 00 00 00 00 00 - // 0050 00 00 00 05 03 07 07 06 05 06 05 07 04 04 04 07 - // 0060 02 06 09 07 06 06 05 00 00 00 00 00 00 00 00 00 - // 0070 00 00 00 04 06 06 0c 06 01 06 07 06 0d 06 01 06 - // 0080 0e 04 04 05 03 05 04 00 00 00 00 00 00 00 00 00 - // 0090 00 00 00 04 06 06 0f 07 08 07 09 02 00 03 03 03 - // 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 00b0 00 00 00 05 04 07 07 06 09 06 0e 02 00 05 02 05 - // 00c0 06 04 02 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 00d0 00 00 00 04 0d 06 01 07 04 06 03 06 08 02 00 f7 - - // 0000 f0 05 - // 0010 08 00 0e 00 02 06 04 03 03 03 00 00 00 00 00 00 - // 0020 00 00 00 00 00 00 00 00 00 00 00 04 0d 06 05 07 - // 0030 03 07 03 05 03 07 04 06 01 07 02 02 00 05 03 00 - // 0040 00 00 00 00 00 00 00 00 00 00 00 04 0d 06 05 07 - // 0050 03 07 03 04 0a 05 00 02 00 04 03 04 08 03 01 00 - // 0060 00 00 00 00 00 00 00 00 00 00 00 05 02 06 0f 06 - // 0070 03 06 0b 03 02 02 00 04 03 04 0c 00 00 00 00 00 - // 0080 00 00 00 00 00 00 00 00 00 00 00 04 0c 06 01 06 - // 0090 0e 07 09 02 00 04 0c 04 08 03 02 03 00 00 00 00 - // 00a0 00 00 00 00 00 00 00 00 00 00 00 05 03 05 05 05 - // 00b0 00 04 04 07 05 06 01 06 0c 00 00 00 00 00 00 00 - // 00c0 00 00 00 00 00 00 00 00 00 00 00 04 02 04 0a 03 - // 00d0 03 02 00 04 03 04 0c 02 00 00 00 00 00 00 00 f7 - - // 0000 f0 02 - // 0010 0d 00 0e 00 03 06 04 00 00 00 00 00 00 00 00 00 - // 0020 00 00 00 05 05 04 0b 02 00 04 02 04 02 02 00 04 - // 0030 03 04 0c 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0040 00 00 00 04 02 04 0a 03 03 02 00 04 0f 04 04 00 - // 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0060 00 00 00 05 05 04 0b 02 00 04 02 04 02 02 00 04 - // 0070 0f 04 04 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0080 00 00 00 05 05 04 0b 02 00 03 04 03 01 03 00 02 - // 0090 00 04 0f 04 04 00 00 00 00 00 00 00 00 00 00 00 - // 00a0 00 00 00 05 02 06 0f 06 03 06 0b 03 02 02 00 04 - // 00b0 0f 04 04 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 00c0 00 00 00 04 08 05 07 03 01 03 00 03 00 00 00 00 - // 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f7 - - // 0000 f0 0d - // 0010 06 00 0e 00 04 06 04 00 00 00 00 04 0a 07 05 06 - // 0020 09 06 03 06 05 02 00 04 03 05 02 02 00 04 0e 00 - // 0030 00 00 00 00 00 00 00 00 00 00 00 04 06 06 0f 07 - // 0040 08 07 09 02 00 03 03 03 00 04 0a 04 0d 04 09 00 - // 0050 00 00 00 00 00 00 00 00 00 00 00 04 02 06 0f 06 - // 0060 07 02 00 04 04 05 03 05 04 00 00 00 00 00 00 00 - // 0070 00 00 00 00 00 00 00 00 00 00 00 04 03 05 06 02 - // 0080 00 05 08 05 06 00 00 00 00 00 00 00 00 00 00 00 - // 0090 00 00 00 00 00 00 00 00 00 00 00 04 0d 06 05 07 - // 00a0 03 07 03 04 0a 05 00 02 00 04 03 04 08 03 02 00 - // 00b0 00 00 00 00 00 00 00 00 00 00 00 04 0d 06 05 07 - // 00c0 03 07 03 04 0a 05 00 02 00 04 03 04 08 03 03 00 - // 00d0 00 00 00 00 00 00 00 00 00 00 00 05 05 04 0b f7 - - // 0000 f0 0f - // 0010 01 00 0e 00 05 06 04 02 00 03 08 03 00 03 00 00 - // 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0030 00 00 00 05 05 04 0b 02 00 05 03 04 0c 05 00 00 - // 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0050 00 00 00 05 05 04 0b 03 04 03 01 03 00 02 00 04 - // 0060 04 05 03 05 04 03 01 00 00 00 00 00 00 00 00 00 - // 0070 00 00 00 05 05 04 0b 03 04 03 01 03 00 02 00 04 - // 0080 04 05 03 05 04 03 02 00 00 00 00 00 00 00 00 00 - // 0090 00 00 00 05 05 04 0b 02 00 03 09 03 00 03 00 00 - // 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 00b0 00 00 00 05 05 04 0b 02 00 03 02 03 00 03 00 03 - // 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 00d0 00 00 00 05 05 04 0b 02 00 04 04 05 03 04 0c f7 - - // 0000 f0 0d - // 0010 02 00 0e 00 06 06 04 00 00 00 00 00 00 00 00 00 - // 0020 00 00 00 00 00 00 00 00 00 00 00 04 04 06 09 07 - // 0030 0a 07 0a 02 00 05 06 04 08 00 00 00 00 00 00 00 - // 0040 00 00 00 00 00 00 00 00 00 00 00 04 0d 06 05 07 - // 0050 03 07 03 02 00 05 04 07 02 06 09 05 06 00 00 00 - // 0060 00 00 00 00 00 00 00 00 00 00 00 04 0d 06 05 07 - // 0070 03 07 03 02 00 05 04 07 02 06 09 04 0d 00 00 00 - // 0080 00 00 00 00 00 00 00 00 00 00 00 04 0d 06 05 07 - // 0090 03 07 03 02 00 03 02 04 03 02 0b 00 00 00 00 00 - // 00a0 00 00 00 00 00 00 00 00 00 00 00 04 05 06 01 06 - // 00b0 07 06 0c 06 05 02 00 04 09 07 02 06 0f 06 0e 00 - // 00c0 00 00 00 00 00 00 00 00 00 00 00 04 08 02 06 04 - // 00d0 0b 02 00 04 02 04 0c 04 0b 03 02 03 00 03 00 f7 - - // 0000 f0 00 - // 0010 0b 00 0e 00 07 06 04 00 00 00 00 00 00 00 00 00 - // 0020 00 00 00 04 0a 07 05 06 09 06 03 06 05 04 03 05 - // 0030 02 04 0d 04 01 05 08 00 00 00 00 00 00 00 00 00 - // 0040 00 00 00 04 01 04 07 04 0c 02 00 04 04 04 02 02 - // 0050 00 04 02 05 03 00 00 00 00 00 00 00 00 00 00 00 - // 0060 00 00 00 04 01 04 0d 05 00 04 07 02 00 03 06 02 - // 0070 00 04 02 05 03 00 00 00 00 00 00 00 00 00 00 00 - // 0080 00 00 00 04 05 04 02 02 00 04 06 06 01 06 06 02 - // 0090 00 04 02 05 03 00 00 00 00 00 00 00 00 00 00 00 - // 00a0 00 00 00 04 08 04 01 04 03 04 0b 02 00 04 02 05 - // 00b0 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 00c0 00 00 00 05 00 05 06 02 00 04 02 05 03 00 00 00 - // 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f7 - - // 0000 f0 06 - // 0010 00 00 0e 00 08 06 04 00 00 00 00 04 0d 04 01 05 - // 0020 04 05 04 02 00 04 02 05 03 00 00 00 00 00 00 00 - // 0030 00 00 00 00 00 00 00 00 00 00 00 04 08 02 06 04 - // 0040 0b 02 00 04 02 05 03 00 00 00 00 00 00 00 00 00 - // 0050 00 00 00 00 00 00 00 00 00 00 00 04 0a 07 05 06 - // 0060 09 06 03 06 05 02 00 04 0f 04 04 04 02 05 03 00 - // 0070 00 00 00 00 00 00 00 00 00 00 00 04 01 04 03 02 - // 0080 00 05 03 04 09 04 0d 00 00 00 00 00 00 00 00 00 - // 0090 00 00 00 00 00 00 00 00 00 00 00 05 00 06 09 06 - // 00a0 05 07 0a 06 0f 02 00 05 03 04 09 04 0d 00 00 00 - // 00b0 00 00 00 00 00 00 00 00 00 00 00 04 05 06 0d 07 - // 00c0 00 07 04 07 09 00 00 00 00 00 00 00 00 00 00 00 - // 00d0 00 00 00 00 00 00 00 00 00 00 00 04 05 06 0d f7 - - // 0000 f0 0f - // 0010 03 00 0e 00 09 06 04 07 00 07 04 07 09 00 00 00 - // 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0030 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 00 - // 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0050 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 00 - // 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0070 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 00 - // 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0090 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 00 - // 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 00b0 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 00 - // 00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 00d0 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 f7 - - // 0000 f0 07 - // 0010 0e 00 0e 00 0a 06 04 00 00 00 00 00 00 00 00 00 - // 0020 00 00 00 00 00 00 00 00 00 00 00 04 05 06 0d 07 - // 0030 00 07 04 07 09 00 00 00 00 00 00 00 00 00 00 00 - // 0040 00 00 00 00 00 00 00 00 00 00 00 04 05 06 0d 07 - // 0050 00 07 04 07 09 00 00 00 00 00 00 00 00 00 00 00 - // 0060 00 00 00 00 00 00 00 00 00 00 00 04 05 06 0d 07 - // 0070 00 07 04 07 09 00 00 00 00 00 00 00 00 00 00 00 - // 0080 00 00 00 00 00 00 00 00 00 00 00 04 05 06 0d 07 - // 0090 00 07 04 07 09 00 00 00 00 00 00 00 00 00 00 00 - // 00a0 00 00 00 00 00 00 00 00 00 00 00 04 05 06 0d 07 - // 00b0 00 07 04 07 09 00 00 00 00 00 00 00 00 00 00 00 - // 00c0 00 00 00 00 00 00 00 00 00 00 00 04 05 06 0d 07 - // 00d0 00 07 04 07 09 00 00 00 00 00 00 00 00 00 00 f7 - - // 0000 f0 0d - // 0010 09 00 0e 00 0b 06 04 00 00 00 00 00 00 00 00 00 - // 0020 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 00 - // 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0040 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 00 - // 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0060 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 00 - // 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0080 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 00 - // 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 00a0 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 00 - // 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 00c0 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 00 - // 00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f7 - - // 0000 f0 05 - // 0010 09 00 0e 00 0c 06 04 00 00 00 00 04 05 06 0d 07 - // 0020 00 07 04 07 09 00 00 00 00 00 00 00 00 00 00 00 - // 0030 00 00 00 00 00 00 00 00 00 00 00 04 05 06 0d 07 - // 0040 00 07 04 07 09 00 00 00 00 00 00 00 00 00 00 00 - // 0050 00 00 00 00 00 00 00 00 00 00 00 04 05 06 0d 07 - // 0060 00 07 04 07 09 00 00 00 00 00 00 00 00 00 00 00 - // 0070 00 00 00 00 00 00 00 00 00 00 00 04 05 06 0d 07 - // 0080 00 07 04 07 09 00 00 00 00 00 00 00 00 00 00 00 - // 0090 00 00 00 00 00 00 00 00 00 00 00 04 05 06 0d 07 - // 00a0 00 07 04 07 09 00 00 00 00 00 00 00 00 00 00 00 - // 00b0 00 00 00 00 00 00 00 00 00 00 00 04 05 06 0d 07 - // 00c0 00 07 04 07 09 00 00 00 00 00 00 00 00 00 00 00 - // 00d0 00 00 00 00 00 00 00 00 00 00 00 04 05 06 0d f7 - - // 0000 f0 0a - // 0010 02 00 0e 00 0d 03 0e 07 00 07 04 07 09 00 00 00 - // 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0030 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 00 - // 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0050 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 00 - // 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0070 00 00 00 04 05 06 0d 07 00 07 04 07 09 00 00 00 - // 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - // 0090 00 00 00 f7 - } break; case 0x40: @@ -1377,11 +1163,11 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 // debug //valeton_dump_parameters(); - if (!snaptone_sync_done) + if (!boot_sync_done) { - // request snaptones once only - usb_valeton_gp5_request_nams(); - snaptone_sync_done = 1; + // request globals once only + usb_valeton_gp5_request_globals(); + boot_sync_done = 1; } } break; @@ -1578,11 +1364,11 @@ static void usb_valeton_gp5_request_preset_params(void) * RETURN: * NOTES: *****************************************************************************/ -static void __attribute__((unused)) usb_valeton_gp5_request_unknown(void) +static void __attribute__((unused)) usb_valeton_gp5_request_globals(void) { uint8_t midi_tx[] = {0x01, 0x00}; - ESP_LOGI(TAG, "Request unknown"); + ESP_LOGI(TAG, "Request globals"); usb_valeton_gp5_send_sysex((const uint8_t*)midi_tx, sizeof(midi_tx), 0x02); } diff --git a/source/main/valeton_params.c b/source/main/valeton_params.c index 2eb3156d..0821ce99 100644 --- a/source/main/valeton_params.c +++ b/source/main/valeton_params.c @@ -167,14 +167,14 @@ static tModellerParameter ValetonParameters[VALETON_GLOBAL_LAST] = //************* Global params ***************** {80, 40, 240, "BPM", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // VALETON_GLOBAL_BPM - {0, -15, 15, "TRIM", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // VALETON_GLOBAL_INPUT_TRIM - {0, 0, 1, "CABSIM", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // VALETON_GLOBAL_CABSIM_BYPASS - {440, 415, 465, "TUNEREF", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // VALETON_GLOBAL_TUNING_REFERENCE - {0, 0, 1, "BYPASS", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // VALETON_GLOBAL_BYPASS - {0, -40, 3, "MVOL", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // VALETON_GLOBAL_MASTER_VOLUME + {0, -20, 20, "TRIM", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // VALETON_GLOBAL_INPUT_TRIM + {0, 0, 1, "CABSIM", MODELLER_PARAM_TYPE_SWITCH, 0, 0, 0}, // VALETON_GLOBAL_CABSIM_BYPASS + {0, -20, 20, "MVOL", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // VALETON_GLOBAL_MASTER_VOLUME + {0, -20, 20, "RLEV", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // VALETON_GLOBAL_RECORD_LEVEL + {0, -20, 20, "MONL", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // VALETON_GLOBAL_MONITOR_LEVEL + {0, -20, 20, "BTLV", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, // VALETON_GLOBAL_BT_LEVEL }; - /**************************************************************************** * NAME: * DESCRIPTION: diff --git a/source/main/valeton_params.h b/source/main/valeton_params.h index c21b3f32..f74f3b71 100644 --- a/source/main/valeton_params.h +++ b/source/main/valeton_params.h @@ -324,9 +324,10 @@ enum ValetonParameters VALETON_GLOBAL_BPM, VALETON_GLOBAL_INPUT_TRIM, VALETON_GLOBAL_CABSIM_BYPASS, - VALETON_GLOBAL_TUNING_REFERENCE, - VALETON_GLOBAL_BYPASS, VALETON_GLOBAL_MASTER_VOLUME, + VALETON_GLOBAL_RECORD_LEVEL, + VALETON_GLOBAL_MONITOR_LEVEL, + VALETON_GLOBAL_BT_LEVEL, // must be last actual global VALETON_GLOBAL_LAST diff --git a/ui_design_480x320land/Tonex_Controller_480_320.eez-project b/ui_design_480x320land/Tonex_Controller_480_320.eez-project index 85527573..82f0f5b2 100644 --- a/ui_design_480x320land/Tonex_Controller_480_320.eez-project +++ b/ui_design_480x320land/Tonex_Controller_480_320.eez-project @@ -23219,7 +23219,7 @@ }, "group": "", "groupIndex": 0, - "options": "Todo", + "options": "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n41\n42\n43\n44\n45\n46\n47\n48\n49\n50\n51\n52\n52\n53\n54\n55\n56\n57\n58\n59\n60\n61\n62\n63\n64\n65\n66\n67\n68\n69\n70\n71\n72\n73\n74\n75\n76\n77\n78\n79", "optionsType": "literal", "selected": 0, "selectedType": "literal", diff --git a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project index 3e45efd4..2da21ab0 100644 --- a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project +++ b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project @@ -23284,7 +23284,7 @@ }, "group": "", "groupIndex": 0, - "options": "Todo", + "options": "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n41\n42\n43\n44\n45\n46\n47\n48\n49\n50\n51\n52\n52\n53\n54\n55\n56\n57\n58\n59\n60\n61\n62\n63\n64\n65\n66\n67\n68\n69\n70\n71\n72\n73\n74\n75\n76\n77\n78\n79", "optionsType": "literal", "selected": 0, "selectedType": "literal", From cadb8267498e4d02d1cd025679a7354992060ac7 Mon Sep 17 00:00:00 2001 From: Greg Smith Date: Sat, 15 Nov 2025 20:10:29 +1100 Subject: [PATCH 12/34] Working on GP5 globals --- source/main/display_valeton.c | 53 ++++- .../main/ui_generated_480x320land/screens.c | 38 +++- .../main/ui_generated_480x320land/screens.h | 3 + .../main/ui_generated_800x480land/screens.c | 38 +++- .../main/ui_generated_800x480land/screens.h | 3 + source/main/usb_valeton_gp5.c | 40 ++-- .../Tonex_Controller_480_320.eez-project | 189 +++++++++++++++++- ...ex_Controller_480_320.eez-project-ui-state | 14 +- .../Tonex_Controller_800_480land.eez-project | 187 ++++++++++++++++- ...ontroller_800_480land.eez-project-ui-state | 12 +- 10 files changed, 542 insertions(+), 35 deletions(-) diff --git a/source/main/display_valeton.c b/source/main/display_valeton.c index f4331819..6c9e0149 100644 --- a/source/main/display_valeton.c +++ b/source/main/display_valeton.c @@ -659,6 +659,19 @@ void valeton_action_parameter_changed(lv_event_t * e) { usb_modify_parameter(VALETON_PARAM_NS_PARAM_4, ((float)lv_slider_get_value(obj))); } + // Globals + else if (obj == objects.ui_val_glob_no_cab_switch) + { + usb_modify_parameter(VALETON_GLOBAL_CABSIM_BYPASS, lv_obj_has_state(obj, LV_STATE_CHECKED) ? 1 : 0); + } + else if (obj == objects.ui_val_glob_input_level_slider) + { + usb_modify_parameter(VALETON_GLOBAL_INPUT_TRIM, ((float)lv_slider_get_value(obj))); + } + else if (obj == objects.ui_val_glob_master_vol_slider) + { + usb_modify_parameter(VALETON_GLOBAL_MASTER_VOLUME, ((float)lv_slider_get_value(obj))); + } #endif // CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI } @@ -690,7 +703,7 @@ uint8_t valeton_update_ui_parameters(void) #if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI - for (uint16_t param = 0; param < VALETON_PARAM_LAST; param++) + for (uint16_t param = 0; param < VALETON_GLOBAL_LAST; param++) { if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) { @@ -3031,6 +3044,44 @@ uint8_t valeton_update_ui_parameters(void) { // not used } break; + + case VALETON_GLOBAL_BPM: + { + //todo + } break; + + case VALETON_GLOBAL_INPUT_TRIM: + { + lv_slider_set_value(objects.ui_val_glob_input_level_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_glob_input_level_value, value_string); + } break; + + case VALETON_GLOBAL_CABSIM_BYPASS: + { + if (param_entry->Value) + { + lv_obj_add_state(objects.ui_val_glob_no_cab_switch, LV_STATE_CHECKED); + } + else + { + lv_obj_clear_state(objects.ui_val_glob_no_cab_switch, LV_STATE_CHECKED); + } + } break; + + case VALETON_GLOBAL_MASTER_VOLUME: + { + lv_slider_set_value(objects.ui_val_glob_master_vol_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_glob_master_vol_value, value_string); + } break; + + case VALETON_GLOBAL_RECORD_LEVEL: // fallthrough + case VALETON_GLOBAL_MONITOR_LEVEL: // fallthrough + case VALETON_GLOBAL_BT_LEVEL: + { + // not exposed to UI + } break; } valeton_params_release_locked_access(); diff --git a/source/main/ui_generated_480x320land/screens.c b/source/main/ui_generated_480x320land/screens.c index b94e7154..af67553b 100644 --- a/source/main/ui_generated_480x320land/screens.c +++ b/source/main/ui_generated_480x320land/screens.c @@ -5144,8 +5144,7 @@ void create_screen_val_settings() { objects.ui_val_glob_input_level_slider = obj; lv_obj_set_pos(obj, 113, -72); lv_obj_set_size(obj, 290, 15); - lv_slider_set_range(obj, -100, -20); - lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_slider_set_range(obj, -20, 20); lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); @@ -5164,6 +5163,41 @@ void create_screen_val_settings() { lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); lv_label_set_text(obj, "0"); } + { + // ui_ValGlobMasterVolLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_glob_master_vol_label = obj; + lv_obj_set_pos(obj, 4, -34); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Master Vol"); + } + { + // ui_ValGlobMasterVolSlider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_glob_master_vol_slider = obj; + lv_obj_set_pos(obj, 113, -34); + lv_obj_set_size(obj, 290, 15); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValGlobMasterVolValue + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_glob_master_vol_value = obj; + lv_obj_set_pos(obj, 417, -31); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } } } } diff --git a/source/main/ui_generated_480x320land/screens.h b/source/main/ui_generated_480x320land/screens.h index 4199ddd4..9e29388a 100644 --- a/source/main/ui_generated_480x320land/screens.h +++ b/source/main/ui_generated_480x320land/screens.h @@ -412,6 +412,9 @@ typedef struct _objects_t { lv_obj_t *ui_val_glob_input_level_label; lv_obj_t *ui_val_glob_input_level_slider; lv_obj_t *ui_val_glob_input_level_value; + lv_obj_t *ui_val_glob_master_vol_label; + lv_obj_t *ui_val_glob_master_vol_slider; + lv_obj_t *ui_val_glob_master_vol_value; lv_obj_t *ui_val_closeimage; } objects_t; diff --git a/source/main/ui_generated_800x480land/screens.c b/source/main/ui_generated_800x480land/screens.c index 181a61ef..e8a4b665 100644 --- a/source/main/ui_generated_800x480land/screens.c +++ b/source/main/ui_generated_800x480land/screens.c @@ -5132,7 +5132,7 @@ void create_screen_val_settings() { objects.ui_val_glob_input_level_slider = obj; lv_obj_set_pos(obj, 168, -92); lv_obj_set_size(obj, 511, 20); - lv_slider_set_range(obj, -100, -20); + lv_slider_set_range(obj, -20, 20); lv_slider_set_value(obj, -64, LV_ANIM_OFF); lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); @@ -5152,6 +5152,42 @@ void create_screen_val_settings() { lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); lv_label_set_text(obj, "0"); } + { + // ui_ValGlobMasterVolLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_glob_master_vol_label = obj; + lv_obj_set_pos(obj, 13, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Master Vol"); + } + { + // ui_ValGlobMasterVolSlider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_glob_master_vol_slider = obj; + lv_obj_set_pos(obj, 168, -36); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValGlobMasterVolValue + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_glob_master_vol_value = obj; + lv_obj_set_pos(obj, 703, -36); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } } } } diff --git a/source/main/ui_generated_800x480land/screens.h b/source/main/ui_generated_800x480land/screens.h index 8de90d9a..dee5a5a7 100644 --- a/source/main/ui_generated_800x480land/screens.h +++ b/source/main/ui_generated_800x480land/screens.h @@ -414,6 +414,9 @@ typedef struct _objects_t { lv_obj_t *ui_val_glob_input_level_label; lv_obj_t *ui_val_glob_input_level_slider; lv_obj_t *ui_val_glob_input_level_value; + lv_obj_t *ui_val_glob_master_vol_label; + lv_obj_t *ui_val_glob_master_vol_slider; + lv_obj_t *ui_val_glob_master_vol_value; lv_obj_t *ui_val_closeimage; } objects_t; diff --git a/source/main/usb_valeton_gp5.c b/source/main/usb_valeton_gp5.c index c5ebf2e1..8961f9bd 100644 --- a/source/main/usb_valeton_gp5.c +++ b/source/main/usb_valeton_gp5.c @@ -963,7 +963,15 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 } // debug - valeton_dump_parameters(); + //valeton_dump_parameters(); + + // signal to refresh param UI + UI_RefreshParameterValues(); + + // update web UI + wifi_request_sync(WIFI_SYNC_TYPE_PARAMS, NULL, NULL); + + control_set_sync_complete(); // request nams usb_valeton_gp5_request_nams(); @@ -1032,8 +1040,6 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 vTaskDelay(10); } - control_set_sync_complete(); - // request the preset usb_valeton_gp5_request_current_preset(); @@ -1148,18 +1154,7 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 { ESP_LOGW(TAG, "Param mutex failed!"); } - - // if we have messages waiting in the queue, it will trigger another - // change that will overwrite this one. Skip the UI refresh to save time - if (uxQueueMessagesWaiting(input_queue) == 0) - { - // signal to refresh param UI - UI_RefreshParameterValues(); - - // update web UI - wifi_request_sync(WIFI_SYNC_TYPE_PARAMS, NULL, NULL); - } - + // debug //valeton_dump_parameters(); @@ -1169,6 +1164,19 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 usb_valeton_gp5_request_globals(); boot_sync_done = 1; } + else + { + // if we have messages waiting in the queue, it will trigger another + // change that will overwrite this one. Skip the UI refresh to save time + if (uxQueueMessagesWaiting(input_queue) == 0) + { + // signal to refresh param UI + UI_RefreshParameterValues(); + + // update web UI + wifi_request_sync(WIFI_SYNC_TYPE_PARAMS, NULL, NULL); + } + } } break; case 0x43: @@ -1958,7 +1966,7 @@ void usb_valeton_gp5_init(class_driver_t* driver_obj, QueueHandle_t comms_queue) tonex_common_release_memory(); // let the pedal boot up - vTaskDelay(pdMS_TO_TICKS(1000)); + vTaskDelay(pdMS_TO_TICKS(200)); // open it ESP_ERROR_CHECK(midi_host_open(VALETON_USB_VENDOR, VALETON_GP5_PRODUCT_ID, VALETON_GP5_MIDI_INTERFACE_INDEX, &dev_config, &midi_dev)); diff --git a/ui_design_480x320land/Tonex_Controller_480_320.eez-project b/ui_design_480x320land/Tonex_Controller_480_320.eez-project index 82f0f5b2..85854e0d 100644 --- a/ui_design_480x320land/Tonex_Controller_480_320.eez-project +++ b/ui_design_480x320land/Tonex_Controller_480_320.eez-project @@ -24440,12 +24440,12 @@ }, "group": "", "groupIndex": 0, - "min": -100, + "min": -20, "minType": "literal", - "max": -20, + "max": 20, "maxType": "literal", "mode": "NORMAL", - "value": -64, + "value": 0, "valueType": "literal", "previewValue": 25, "valueLeft": 0, @@ -24503,6 +24503,189 @@ "textType": "literal", "longMode": "WRAP", "recolor": false + }, + { + "objID": "f1dba057-63c0-48ff-a680-5fd4ced27295", + "type": "LVGLLabelWidget", + "left": 4, + "top": -34, + "width": 95, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "3f5df2ad-e828-4b10-ca65-da7d063f4d4b", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValGlobMasterVolLabel", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "9bb5827a-0953-440e-8089-0dd6f5b0d2dc", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Master Vol", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "d08ec539-2eba-4d5f-b9d5-c03cf202835c", + "type": "LVGLSliderWidget", + "left": 113, + "top": -34, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "d1f0edca-dd5f-4bd0-a982-e3757cd55523", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "ae161d3b-31f3-4c3e-cf46-6c49a0de97ff", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValGlobMasterVolSlider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "ff4fa96b-c986-49d6-8a72-c62a80d464a7", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": 0, + "minType": "literal", + "max": 100, + "maxType": "literal", + "mode": "NORMAL", + "value": 0, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "029aa5b1-589c-47c2-e53a-08102bc78eab", + "type": "LVGLLabelWidget", + "left": 417, + "top": -31, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "9b0d1936-cafd-493b-d4bd-b98d21caa877", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValGlobMasterVolValue", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "8cb1d3a6-c7ce-4849-bbec-3afaf1d36e85", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false } ], "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", diff --git a/ui_design_480x320land/Tonex_Controller_480_320.eez-project-ui-state b/ui_design_480x320land/Tonex_Controller_480_320.eez-project-ui-state index da054ae1..c48246c2 100644 --- a/ui_design_480x320land/Tonex_Controller_480_320.eez-project-ui-state +++ b/ui_design_480x320land/Tonex_Controller_480_320.eez-project-ui-state @@ -122,6 +122,7 @@ "type": "tabset", "id": "#e9c1201a-3c4b-425c-bf27-cc604f16dbe9", "weight": 0.557257000659591, + "selected": 1, "enableClose": false, "children": [ { @@ -202,8 +203,7 @@ }, "icon": "svg:page" } - ], - "active": true + ] }, { "type": "row", @@ -223,7 +223,8 @@ "enableClose": false, "icon": "svg:properties" } - ] + ], + "active": true }, { "type": "tabset", @@ -1027,8 +1028,11 @@ "selection": { "0": { "0": { - "0": { - "$selected": true + "0": {}, + "11": { + "6": { + "$selected": true + } } }, "1": {} diff --git a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project index 2da21ab0..8f5f1056 100644 --- a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project +++ b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project @@ -24505,9 +24505,9 @@ }, "group": "", "groupIndex": 0, - "min": -100, + "min": -20, "minType": "literal", - "max": -20, + "max": 20, "maxType": "literal", "mode": "NORMAL", "value": -64, @@ -24568,6 +24568,189 @@ "textType": "literal", "longMode": "WRAP", "recolor": false + }, + { + "objID": "101b9cd0-a460-4372-e8bb-14a28b19cfba", + "type": "LVGLLabelWidget", + "left": 13, + "top": -36, + "width": 128, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "2217b392-bda4-44e6-bd77-5b7d55d84baa", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValGlobMasterVolLabel", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "bf91214b-4355-4c21-8fca-9d3458eb53d1", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Master Vol", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "77696f65-6e4b-43b9-a45e-856cdd3339eb", + "type": "LVGLSliderWidget", + "left": 168, + "top": -36, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "67c4bdfa-272e-40bd-d986-ca4ff1ad90a6", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "5a638f58-f032-4145-aa85-68c120a15327", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValGlobMasterVolSlider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "34fc6e44-af39-475c-a5ca-a216249b46e5", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": 0, + "minType": "literal", + "max": 100, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "5d12b729-a49e-42d4-c470-4428a40ac67c", + "type": "LVGLLabelWidget", + "left": 703, + "top": -36, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "bfe6c5ee-c749-4447-c066-6861d9cdc6b9", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValGlobMasterVolValue", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "513989f8-4fe4-464f-b78d-b8782b1300bc", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false } ], "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", diff --git a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state index 55fd69b2..9a8628c4 100644 --- a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state +++ b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state @@ -203,8 +203,7 @@ }, "icon": "svg:page" } - ], - "active": true + ] }, { "type": "row", @@ -224,7 +223,8 @@ "enableClose": false, "icon": "svg:properties" } - ] + ], + "active": true }, { "type": "tabset", @@ -1020,8 +1020,10 @@ "selection": { "0": { "0": { - "1": { - "$selected": true + "11": { + "6": { + "$selected": true + } } } } From c97f7c02a050823ef4c846bbeead46c698b1f70e Mon Sep 17 00:00:00 2001 From: Greg Smith Date: Sun, 16 Nov 2025 12:55:37 +1100 Subject: [PATCH 13/34] - added GP5 patch volume - completed GP5 globals --- source/main/display_valeton.c | 7 + .../main/ui_generated_480x320land/screens.c | 37 +++- .../main/ui_generated_480x320land/screens.h | 3 + .../main/ui_generated_800x480land/screens.c | 36 ++++ .../main/ui_generated_800x480land/screens.h | 3 + source/main/usb_valeton_gp5.c | 162 +++++++++++++-- source/main/valeton_params.c | 2 + source/main/valeton_params.h | 3 + .../Tonex_Controller_480_320.eez-project | 187 +++++++++++++++++- ...ex_Controller_480_320.eez-project-ui-state | 15 +- .../Tonex_Controller_800_480land.eez-project | 183 +++++++++++++++++ ...ontroller_800_480land.eez-project-ui-state | 12 +- 12 files changed, 611 insertions(+), 39 deletions(-) diff --git a/source/main/display_valeton.c b/source/main/display_valeton.c index 6c9e0149..ae5fd5af 100644 --- a/source/main/display_valeton.c +++ b/source/main/display_valeton.c @@ -714,6 +714,13 @@ uint8_t valeton_update_ui_parameters(void) switch (param) { + case VALETON_PARAM_PATCH_VOLUME: + { + lv_slider_set_value(objects.ui_val_patch_vol_slider, round(param_entry->Value), LV_ANIM_OFF); + sprintf(value_string, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_val_patch_vol_value, value_string); + } break; + case VALETON_PARAM_NR_ENABLE: { if (param_entry->Value) diff --git a/source/main/ui_generated_480x320land/screens.c b/source/main/ui_generated_480x320land/screens.c index af67553b..f7824fe1 100644 --- a/source/main/ui_generated_480x320land/screens.c +++ b/source/main/ui_generated_480x320land/screens.c @@ -5136,7 +5136,7 @@ void create_screen_val_settings() { lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); - lv_label_set_text(obj, "Input Level"); + lv_label_set_text(obj, "Input Lev"); } { // ui_ValGlobInputLevelSlider @@ -5198,6 +5198,41 @@ void create_screen_val_settings() { lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); lv_label_set_text(obj, "0"); } + { + // ui_ValPatchVolLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_patch_vol_label = obj; + lv_obj_set_pos(obj, 4, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Patch Vol"); + } + { + // ui_ValPatchVolSlider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_patch_vol_slider = obj; + lv_obj_set_pos(obj, 113, 4); + lv_obj_set_size(obj, 290, 15); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValPatchVolValue + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_patch_vol_value = obj; + lv_obj_set_pos(obj, 417, 4); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } } } } diff --git a/source/main/ui_generated_480x320land/screens.h b/source/main/ui_generated_480x320land/screens.h index 9e29388a..5908a634 100644 --- a/source/main/ui_generated_480x320land/screens.h +++ b/source/main/ui_generated_480x320land/screens.h @@ -415,6 +415,9 @@ typedef struct _objects_t { lv_obj_t *ui_val_glob_master_vol_label; lv_obj_t *ui_val_glob_master_vol_slider; lv_obj_t *ui_val_glob_master_vol_value; + lv_obj_t *ui_val_patch_vol_label; + lv_obj_t *ui_val_patch_vol_slider; + lv_obj_t *ui_val_patch_vol_value; lv_obj_t *ui_val_closeimage; } objects_t; diff --git a/source/main/ui_generated_800x480land/screens.c b/source/main/ui_generated_800x480land/screens.c index e8a4b665..eacc6d1d 100644 --- a/source/main/ui_generated_800x480land/screens.c +++ b/source/main/ui_generated_800x480land/screens.c @@ -5188,6 +5188,42 @@ void create_screen_val_settings() { lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); lv_label_set_text(obj, "0"); } + { + // ui_ValPatchVolLabel + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_patch_vol_label = obj; + lv_obj_set_pos(obj, 13, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "Patch Vol"); + } + { + // ui_ValPatchVolSlider + lv_obj_t *obj = lv_slider_create(parent_obj); + objects.ui_val_patch_vol_slider = obj; + lv_obj_set_pos(obj, 168, 22); + lv_obj_set_size(obj, 511, 20); + lv_slider_set_value(obj, -64, LV_ANIM_OFF); + lv_obj_add_event_cb(obj, action_parameter_changed, LV_EVENT_RELEASED, (void *)0); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffaeb1b4), LV_PART_MAIN | LV_STATE_SCROLLED); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xff3890d5), LV_PART_INDICATOR | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(obj, lv_color_hex(0xffffffff), LV_PART_KNOB | LV_STATE_DEFAULT); + } + { + // ui_ValPatchVolValue + lv_obj_t *obj = lv_label_create(parent_obj); + objects.ui_val_patch_vol_value = obj; + lv_obj_set_pos(obj, 703, 21); + lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT); + lv_obj_clear_flag(obj, LV_OBJ_FLAG_SCROLLABLE); + lv_obj_set_style_text_font(obj, &lv_font_montserrat_24, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_label_set_text(obj, "0"); + } } } } diff --git a/source/main/ui_generated_800x480land/screens.h b/source/main/ui_generated_800x480land/screens.h index dee5a5a7..523e85fd 100644 --- a/source/main/ui_generated_800x480land/screens.h +++ b/source/main/ui_generated_800x480land/screens.h @@ -417,6 +417,9 @@ typedef struct _objects_t { lv_obj_t *ui_val_glob_master_vol_label; lv_obj_t *ui_val_glob_master_vol_slider; lv_obj_t *ui_val_glob_master_vol_value; + lv_obj_t *ui_val_patch_vol_label; + lv_obj_t *ui_val_patch_vol_slider; + lv_obj_t *ui_val_patch_vol_value; lv_obj_t *ui_val_closeimage; } objects_t; diff --git a/source/main/usb_valeton_gp5.c b/source/main/usb_valeton_gp5.c index 8961f9bd..d36ee6dd 100644 --- a/source/main/usb_valeton_gp5.c +++ b/source/main/usb_valeton_gp5.c @@ -638,7 +638,7 @@ static uint8_t usb_valeton_gp5_parse_sysex(const uint8_t* buffer, uint32_t len) { uint32_t write_index = 0; uint32_t bytes_read = 0; - uint16_t rx_length; + uint16_t __attribute__((unused)) rx_length; uint8_t* tmp_ptr = (uint8_t*)buffer; uint16_t chunk_count = 0; uint16_t this_chunk = 0; @@ -928,7 +928,7 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 // debug //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], len - read_index, ESP_LOG_INFO); - // skip to mast volume + // skip to master volume read_index += 40; if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) @@ -963,7 +963,7 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 } // debug - //valeton_dump_parameters(); + valeton_dump_parameters(); // signal to refresh param UI UI_RefreshParameterValues(); @@ -1061,8 +1061,18 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 uint8_t effect_states_2; uint8_t loop; + // skip to patch vol + read_index += 96; + + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + // get patch volume + param_ptr[VALETON_PARAM_PATCH_VOLUME].Value = (float)usb_valeton_gp5_convert_hex_byte_pair_s16(buffer[read_index], buffer[read_index + 1]); + valeton_params_release_locked_access(); + } + // skip to effect block bit flags - read_index += 136; + read_index += 40; effect_states_1 = (buffer[read_index] << 4) | (buffer[read_index + 1] & 0x0F); read_index += 2; @@ -1155,9 +1165,6 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 ESP_LOGW(TAG, "Param mutex failed!"); } - // debug - //valeton_dump_parameters(); - if (!boot_sync_done) { // request globals once only @@ -1248,7 +1255,7 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 // locate the parameter and update local copy tModellerParameter* param_ptr = NULL; uint8_t block; - uint8_t pedal; + uint8_t __attribute__((unused)) pedal; uint8_t param; if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) @@ -1269,9 +1276,6 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 valeton_params_release_locked_access(); } - - // example response - // f0 0c 0e 00 01 00 00 00 0e 01 01 04 08 00 01 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 02 00 04 02 f7 } break; case 0x49: @@ -1506,7 +1510,7 @@ static void usb_valeton_gp5_set_effect_block_state(uint8_t block_index, uint8_t ESP_LOGI(TAG, "Set Effect Block state %d %d", block_index, state); // debug - ESP_LOG_BUFFER_HEXDUMP(TAG, midi_tx, sizeof(midi_tx), ESP_LOG_INFO); + //ESP_LOG_BUFFER_HEXDUMP(TAG, midi_tx, sizeof(midi_tx), ESP_LOG_INFO); usb_valeton_gp5_send_sysex((const uint8_t*)midi_tx, sizeof(midi_tx), 0x01); } @@ -1569,7 +1573,7 @@ static void usb_valeton_gp5_set_effect_block_model(uint8_t block_index, uint8_t midi_tx[25] = ptr[0] & 0x0F; // debug - ESP_LOG_BUFFER_HEXDUMP(TAG, midi_tx, sizeof(midi_tx), ESP_LOG_INFO); + //ESP_LOG_BUFFER_HEXDUMP(TAG, midi_tx, sizeof(midi_tx), ESP_LOG_INFO); usb_valeton_gp5_send_sysex((const uint8_t*)midi_tx, sizeof(midi_tx), 0x01); } @@ -1616,6 +1620,118 @@ static void usb_valeton_gp5_set_effect_block_model_parameter(uint8_t block_index usb_valeton_gp5_send_sysex((const uint8_t*)midi_tx, sizeof(midi_tx), 0x01); } +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +static void usb_valeton_gp5_set_global(uint16_t param_index, float value) +{ + uint16_t temp_val; + uint8_t midi_tx[] = {0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + + switch (param_index) + { + case VALETON_GLOBAL_INPUT_TRIM: + { + midi_tx[3] = 1; + midi_tx[5] = 3; + } break; + + case VALETON_GLOBAL_MASTER_VOLUME: + { + midi_tx[3] = 2; + midi_tx[5] = 2; + } break; + + case VALETON_GLOBAL_CABSIM_BYPASS: + { + midi_tx[3] = 3; + midi_tx[5] = 3; + } break; + + case VALETON_GLOBAL_RECORD_LEVEL: + { + midi_tx[3] = 1; + midi_tx[5] = 4; + } break; + + case VALETON_GLOBAL_MONITOR_LEVEL: + { + midi_tx[3] = 2; + midi_tx[5] = 4; + } break; + + case VALETON_GLOBAL_BT_LEVEL: + { + midi_tx[3] = 5; + midi_tx[5] = 4; + } break; + + case VALETON_GLOBAL_BPM: // fallthrough + default: + { + ESP_LOGW(TAG, "Invalid set global %d", param_index); + return; + } break; + } + + // set the value + if (value < 0) + { + temp_val = (uint16_t)(0x100 + value); + } + else + { + temp_val = (uint16_t)value; + } + + midi_tx[10] = temp_val >> 8; + midi_tx[11] = temp_val & 0xFF; + + ESP_LOGI(TAG, "Set Global %d: %f", param_index, value); + + // debug + //ESP_LOG_BUFFER_HEXDUMP(TAG, midi_tx, sizeof(midi_tx), ESP_LOG_INFO); + + usb_valeton_gp5_send_sysex((const uint8_t*)midi_tx, sizeof(midi_tx), 0x01); +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +static void usb_valeton_gp5_set_patch_volume(float value) +{ + uint16_t temp_val; + uint8_t midi_tx[] = {0x04, 0x02, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + + // set the value + if (value < 0) + { + temp_val = (uint16_t)(0x100 + value); + } + else + { + temp_val = (uint16_t)value; + } + + midi_tx[10] = temp_val >> 8; + midi_tx[11] = temp_val & 0xFF; + + ESP_LOGI(TAG, "Set Patch volume %f", value); + + // debug + //ESP_LOG_BUFFER_HEXDUMP(TAG, midi_tx, sizeof(midi_tx), ESP_LOG_INFO); + + usb_valeton_gp5_send_sysex((const uint8_t*)midi_tx, sizeof(midi_tx), 0x01); +} + /**************************************************************************** * NAME: * DESCRIPTION: @@ -1840,16 +1956,24 @@ void usb_valeton_gp5_handle(class_driver_t* driver_obj) { if (message.Payload < VALETON_PARAM_LAST) { - // modify param - usb_valeton_gp5_modify_parameter(message.Payload, message.PayloadFloat); - - // send it - usb_valeton_gp5_send_single_parameter(message.Payload, message.PayloadFloat); + if (message.Payload == VALETON_PARAM_PATCH_VOLUME) + { + // special case for patch vol + usb_valeton_gp5_set_patch_volume(message.PayloadFloat); + } + else + { + // modify param + usb_valeton_gp5_modify_parameter(message.Payload, message.PayloadFloat); + + // send it + usb_valeton_gp5_send_single_parameter(message.Payload, message.PayloadFloat); + } } else if (message.Payload < VALETON_GLOBAL_LAST) { // modify the global - //todo + usb_valeton_gp5_set_global(message.Payload, message.PayloadFloat); } else { diff --git a/source/main/valeton_params.c b/source/main/valeton_params.c index 0821ce99..a2c8325f 100644 --- a/source/main/valeton_params.c +++ b/source/main/valeton_params.c @@ -69,6 +69,8 @@ static tModellerParameter ValetonParameters[VALETON_GLOBAL_LAST] = {0, VALETON_EFFECT_RVB_AIR, VALETON_EFFECT_RVB_SWEET_SPACE, "RVB TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_RVB, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_RVB_TYPE, {0, 0, 1, "NS TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_NS, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_NS_TYPE + {0, 0, 100, "PVOL", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, //VALETON_PARAM_PATCH_VOLUME + {0, 0, 100, "NR 0", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NR, 0, 0}, //VALETON_PARAM_NR_PARAM_0 {0, 0, 100, "NR 1", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NR, 0, 1}, //VALETON_PARAM_NR_PARAM_1 {0, 0, 100, "NR 2", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NR, 0, 2}, //VALETON_PARAM_NR_PARAM_2 diff --git a/source/main/valeton_params.h b/source/main/valeton_params.h index f74f3b71..8ba3bf0f 100644 --- a/source/main/valeton_params.h +++ b/source/main/valeton_params.h @@ -213,6 +213,9 @@ enum ValetonParameters VALETON_PARAM_RVB_TYPE, VALETON_PARAM_NS_TYPE, + // patch volume + VALETON_PARAM_PATCH_VOLUME, + // params //**** NR **** VALETON_PARAM_NR_PARAM_0, diff --git a/ui_design_480x320land/Tonex_Controller_480_320.eez-project b/ui_design_480x320land/Tonex_Controller_480_320.eez-project index 85854e0d..dbff0307 100644 --- a/ui_design_480x320land/Tonex_Controller_480_320.eez-project +++ b/ui_design_480x320land/Tonex_Controller_480_320.eez-project @@ -24326,7 +24326,7 @@ "type": "LVGLLabelWidget", "left": 4, "top": -72, - "width": 102, + "width": 86, "height": 21, "customInputs": [], "customOutputs": [], @@ -24367,7 +24367,7 @@ }, "group": "", "groupIndex": 0, - "text": "Input Level", + "text": "Input Lev", "textType": "literal", "longMode": "WRAP", "recolor": false @@ -24686,6 +24686,189 @@ "textType": "literal", "longMode": "WRAP", "recolor": false + }, + { + "objID": "b5f255ec-2816-4865-b8c8-1622ba4ee959", + "type": "LVGLLabelWidget", + "left": 4, + "top": 4, + "width": 86, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "738d08bc-8f10-414c-b4da-f027553d3fa3", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValPatchVolLabel", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "65feff06-ceb9-4cdf-8975-85d69c46abd5", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Patch Vol", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "ca2afa6e-a895-4b30-d4e9-b9e39a62f3db", + "type": "LVGLSliderWidget", + "left": 113, + "top": 4, + "width": 290, + "height": 15, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "d1d3e76c-0a36-4292-8d7c-496c8805f8dc", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "32e8d3c6-1489-40c7-f61a-70f7d2702259", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValPatchVolSlider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "03d404d8-551c-4c8c-f80f-c622efb500f1", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": 0, + "minType": "literal", + "max": 100, + "maxType": "literal", + "mode": "NORMAL", + "value": 0, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "b70db2ac-fae5-4d01-95ff-747f88145458", + "type": "LVGLLabelWidget", + "left": 417, + "top": 4, + "width": 12, + "height": 21, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "14bbfb9a-0d5f-45a4-ed1f-3674dde78cc3", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValPatchVolValue", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "495b0fc9-c681-46b8-cc99-059bcf36c244", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_18", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false } ], "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", diff --git a/ui_design_480x320land/Tonex_Controller_480_320.eez-project-ui-state b/ui_design_480x320land/Tonex_Controller_480_320.eez-project-ui-state index c48246c2..6b8f34d5 100644 --- a/ui_design_480x320land/Tonex_Controller_480_320.eez-project-ui-state +++ b/ui_design_480x320land/Tonex_Controller_480_320.eez-project-ui-state @@ -165,7 +165,8 @@ "enableClose": false, "icon": "svg:hierarchy" } - ] + ], + "active": true }, { "type": "tabset", @@ -223,8 +224,7 @@ "enableClose": false, "icon": "svg:properties" } - ], - "active": true + ] }, { "type": "tabset", @@ -1028,11 +1028,8 @@ "selection": { "0": { "0": { - "0": {}, - "11": { - "6": { - "$selected": true - } + "0": { + "$selected": true } }, "1": {} @@ -1068,7 +1065,7 @@ "lvglState": "DEFAULT", "lvglExpandedPropertiesGroup": [ "TEXT", - "POSITION AND SIZE" + "BACKGROUND" ], "showInactiveFlowsInDebugger": true, "globalFlowZoom": true, diff --git a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project index 8f5f1056..df2b0fd9 100644 --- a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project +++ b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project @@ -24751,6 +24751,189 @@ "textType": "literal", "longMode": "WRAP", "recolor": false + }, + { + "objID": "9c5dec7d-fecd-412e-83fa-8ec507e7e664", + "type": "LVGLLabelWidget", + "left": 13, + "top": 21, + "width": 115, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "709c0911-4472-4378-c663-b102970eb11b", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValPatchVolLabel", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "af773a29-af23-46a6-be12-62d07cb10858", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "Patch Vol", + "textType": "literal", + "longMode": "WRAP", + "recolor": false + }, + { + "objID": "e6301406-f3ef-41d9-db52-dcfd21bbd269", + "type": "LVGLSliderWidget", + "left": 168, + "top": 22, + "width": 511, + "height": 20, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "29eecc0b-5b33-487e-97cd-f5771ebb78c6", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [ + { + "objID": "b4bb984a-759e-4fc7-9a21-fe2c43c9161d", + "eventName": "RELEASED", + "handlerType": "action", + "action": "ParameterChanged", + "userData": 0 + } + ], + "identifier": "ui_ValPatchVolSlider", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "px", + "heightUnit": "px", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlag": true, + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "14ee8ef0-6c09-49b8-d5f4-1853cdca06fd", + "definition": { + "MAIN": { + "DEFAULT": { + "align": "LEFT_MID", + "bg_color": "#aeb1b4" + }, + "SCROLLED": { + "bg_color": "#aeb1b4" + } + }, + "INDICATOR": { + "DEFAULT": { + "bg_color": "#3890d5" + } + }, + "KNOB": { + "DEFAULT": { + "bg_color": "#ffffff" + } + } + } + }, + "group": "", + "groupIndex": 0, + "min": 0, + "minType": "literal", + "max": 100, + "maxType": "literal", + "mode": "NORMAL", + "value": -64, + "valueType": "literal", + "previewValue": 25, + "valueLeft": 0, + "valueLeftType": "literal", + "previewValueLeft": 0, + "enableAnimation": false + }, + { + "objID": "3cefe5c4-8439-4622-88c2-c4fb844f8873", + "type": "LVGLLabelWidget", + "left": 703, + "top": 21, + "width": 16, + "height": 27, + "customInputs": [], + "customOutputs": [], + "style": { + "objID": "7d61abd2-9c10-44ca-cd09-3c6aba4f4988", + "useStyle": "default", + "conditionalStyles": [], + "childStyles": [] + }, + "timeline": [], + "eventHandlers": [], + "identifier": "ui_ValPatchVolValue", + "leftUnit": "px", + "topUnit": "px", + "widthUnit": "content", + "heightUnit": "content", + "children": [], + "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SCROLL_CHAIN_HOR|SCROLL_CHAIN_VER|SCROLL_ELASTIC|SCROLL_MOMENTUM|SCROLL_WITH_ARROW|SNAPPABLE", + "hiddenFlagType": "literal", + "clickableFlagType": "literal", + "flagScrollbarMode": "", + "flagScrollDirection": "", + "scrollSnapX": "", + "scrollSnapY": "", + "checkedStateType": "literal", + "disabledStateType": "literal", + "states": "", + "localStyles": { + "objID": "8b46a0fc-57ca-44fe-9b4c-41e80828316a", + "definition": { + "MAIN": { + "DEFAULT": { + "text_font": "MONTSERRAT_24", + "align": "LEFT_MID" + } + } + } + }, + "group": "", + "groupIndex": 0, + "text": "0", + "textType": "literal", + "longMode": "WRAP", + "recolor": false } ], "widgetFlags": "CLICK_FOCUSABLE|GESTURE_BUBBLE|PRESS_LOCK|SNAPPABLE", diff --git a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state index 9a8628c4..d66480e2 100644 --- a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state +++ b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state @@ -165,7 +165,8 @@ "enableClose": false, "icon": "svg:hierarchy" } - ] + ], + "active": true }, { "type": "tabset", @@ -223,8 +224,7 @@ "enableClose": false, "icon": "svg:properties" } - ], - "active": true + ] }, { "type": "tabset", @@ -1020,11 +1020,7 @@ "selection": { "0": { "0": { - "11": { - "6": { - "$selected": true - } - } + "$selected": true } } }, From b04099447e6d6047a53f24aa39d729828ea8bfb2 Mon Sep 17 00:00:00 2001 From: Greg Smith Date: Sun, 16 Nov 2025 15:18:10 +1100 Subject: [PATCH 14/34] - implemented effect block order for GP5 --- source/main/display.c | 2 + source/main/display_tonex.c | 6 --- source/main/display_valeton.c | 93 ++++++++++++++++++++++++++++++++++- source/main/usb_valeton_gp5.c | 25 +++++++++- source/main/valeton_params.c | 18 ++++++- source/main/valeton_params.h | 12 ++++- 6 files changed, 144 insertions(+), 12 deletions(-) diff --git a/source/main/display.c b/source/main/display.c index 6db2f8de..051c6a3c 100644 --- a/source/main/display.c +++ b/source/main/display.c @@ -1113,6 +1113,8 @@ static __attribute__((unused)) uint8_t update_ui_element(tUIUpdate* update) valeton_update_ui_parameters(); } break; } + + updateIconOrder(); } break; case UI_ELEMENT_TOAST: diff --git a/source/main/display_tonex.c b/source/main/display_tonex.c index 4a8d6056..1f5545b3 100644 --- a/source/main/display_tonex.c +++ b/source/main/display_tonex.c @@ -995,7 +995,6 @@ uint8_t tonex_update_ui_parameters(void) { lv_obj_clear_state(objects.ui_noise_gate_post_switch, LV_STATE_CHECKED); } - tonex_update_icon_order(); } break; case TONEX_PARAM_NOISE_GATE_ENABLE: @@ -1052,7 +1051,6 @@ uint8_t tonex_update_ui_parameters(void) { lv_obj_clear_state(objects.ui_compressor_post_switch, LV_STATE_CHECKED); } - tonex_update_icon_order(); } break; case TONEX_PARAM_COMP_ENABLE: @@ -1109,7 +1107,6 @@ uint8_t tonex_update_ui_parameters(void) { lv_obj_clear_state(objects.ui_eq_post_switch, LV_STATE_CHECKED); } - tonex_update_icon_order(); } break; case TONEX_PARAM_EQ_BASS: @@ -1305,7 +1302,6 @@ uint8_t tonex_update_ui_parameters(void) { lv_obj_clear_state(objects.ui_reverb_post_switch, LV_STATE_CHECKED); } - tonex_update_icon_order(); } break; case TONEX_PARAM_REVERB_ENABLE: @@ -1683,7 +1679,6 @@ uint8_t tonex_update_ui_parameters(void) { lv_obj_clear_state(objects.ui_modulation_post_switch, LV_STATE_CHECKED); } - tonex_update_icon_order(); } break; case TONEX_PARAM_MODULATION_ENABLE: @@ -2185,7 +2180,6 @@ uint8_t tonex_update_ui_parameters(void) { lv_obj_clear_state(objects.ui_delay_post_switch, LV_STATE_CHECKED); } - tonex_update_icon_order(); } break; case TONEX_PARAM_DELAY_ENABLE: diff --git a/source/main/display_valeton.c b/source/main/display_valeton.c index ae5fd5af..57259b1f 100644 --- a/source/main/display_valeton.c +++ b/source/main/display_valeton.c @@ -685,7 +685,86 @@ void valeton_action_parameter_changed(lv_event_t * e) void valeton_update_icon_order(void) { #if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI - //todo + tModellerParameter* param_ptr; + lv_obj_t* icons[VALETON_EFFECT_BLOCK_LAST]; + uint8_t index = 0; + int16_t offsets[VALETON_EFFECT_BLOCK_LAST]; + + ESP_LOGI(TAG, "Update effect icon order"); + + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + // build array with lvgl object in the current effect order + for (uint32_t loop = VALETON_PARAM_EFFECT_SLOT_0; loop <= VALETON_PARAM_EFFECT_SLOT_9; loop++) + { + switch ((int)param_ptr[loop].Value) + { + case VALETON_EFFECT_BLOCK_NR: + { + icons[index] = objects.ui_icon_val_nr; + } break; + + case VALETON_EFFECT_BLOCK_PRE: + { + icons[index] = objects.ui_icon_val_pre; + } break; + + case VALETON_EFFECT_BLOCK_DST: + { + icons[index] = objects.ui_icon_val_dst; + } break; + + case VALETON_EFFECT_BLOCK_AMP: + { + icons[index] = objects.ui_icon_val_amp; + } break; + + case VALETON_EFFECT_BLOCK_CAB: + { + icons[index] = objects.ui_icon_val_cab; + } break; + + case VALETON_EFFECT_BLOCK_EQ: + { + icons[index] = objects.ui_icon_val_eq; + } break; + + case VALETON_EFFECT_BLOCK_MOD: + { + icons[index] = objects.ui_icon_val_mod; + } break; + + case VALETON_EFFECT_BLOCK_DLY: + { + icons[index] = objects.ui_icon_val_dly; + } break; + + case VALETON_EFFECT_BLOCK_RVB: + { + icons[index] = objects.ui_icon_val_rvb; + } break; + + case VALETON_EFFECT_BLOCK_NS: + { + icons[index] = objects.ui_icon_val_tc; + } break; + } + + index++; + } + + valeton_params_release_locked_access(); + + platform_get_icon_coords(offsets, sizeof(offsets) / sizeof(int16_t)); + + // update X pos of each to set the correct order + for (uint8_t i = 0; i < VALETON_EFFECT_BLOCK_LAST; i++) + { + lv_obj_t* icon = icons[i]; + int16_t offset = offsets[i]; + lv_obj_set_x(icon, offset); + } + } #endif } @@ -3085,7 +3164,17 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_GLOBAL_RECORD_LEVEL: // fallthrough case VALETON_GLOBAL_MONITOR_LEVEL: // fallthrough - case VALETON_GLOBAL_BT_LEVEL: + case VALETON_GLOBAL_BT_LEVEL: // fallthrough + case VALETON_PARAM_EFFECT_SLOT_0: // fallthrough + case VALETON_PARAM_EFFECT_SLOT_1: // fallthrough + case VALETON_PARAM_EFFECT_SLOT_2: // fallthrough + case VALETON_PARAM_EFFECT_SLOT_3: // fallthrough + case VALETON_PARAM_EFFECT_SLOT_4: // fallthrough + case VALETON_PARAM_EFFECT_SLOT_5: // fallthrough + case VALETON_PARAM_EFFECT_SLOT_6: // fallthrough + case VALETON_PARAM_EFFECT_SLOT_7: // fallthrough + case VALETON_PARAM_EFFECT_SLOT_8: // fallthrough + case VALETON_PARAM_EFFECT_SLOT_9: { // not exposed to UI } break; diff --git a/source/main/usb_valeton_gp5.c b/source/main/usb_valeton_gp5.c index d36ee6dd..d3cec48e 100644 --- a/source/main/usb_valeton_gp5.c +++ b/source/main/usb_valeton_gp5.c @@ -1095,9 +1095,32 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 valeton_params_release_locked_access(); } + + // skip to effect order. these are 2 byte values, with block index in order from slot 0 to 9 + read_index += 12; + + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + // set effect block order + param_ptr[VALETON_PARAM_EFFECT_SLOT_0].Value = (float)((buffer[read_index + 0] << 4) | (buffer[read_index + 1] & 0x0F)); + param_ptr[VALETON_PARAM_EFFECT_SLOT_1].Value = (float)((buffer[read_index + 2] << 4) | (buffer[read_index + 3] & 0x0F)); + param_ptr[VALETON_PARAM_EFFECT_SLOT_2].Value = (float)((buffer[read_index + 4] << 4) | (buffer[read_index + 5] & 0x0F)); + param_ptr[VALETON_PARAM_EFFECT_SLOT_3].Value = (float)((buffer[read_index + 6] << 4) | (buffer[read_index + 7] & 0x0F)); + param_ptr[VALETON_PARAM_EFFECT_SLOT_4].Value = (float)((buffer[read_index + 8] << 4) | (buffer[read_index + 9] & 0x0F)); + param_ptr[VALETON_PARAM_EFFECT_SLOT_5].Value = (float)((buffer[read_index + 10] << 4) | (buffer[read_index + 11] & 0x0F)); + param_ptr[VALETON_PARAM_EFFECT_SLOT_6].Value = (float)((buffer[read_index + 12] << 4) | (buffer[read_index + 13] & 0x0F)); + param_ptr[VALETON_PARAM_EFFECT_SLOT_7].Value = (float)((buffer[read_index + 14] << 4) | (buffer[read_index + 15] & 0x0F)); + param_ptr[VALETON_PARAM_EFFECT_SLOT_8].Value = (float)((buffer[read_index + 16] << 4) | (buffer[read_index + 17] & 0x0F)); + param_ptr[VALETON_PARAM_EFFECT_SLOT_9].Value = (float)((buffer[read_index + 18] << 4) | (buffer[read_index + 19] & 0x0F)); + + valeton_params_release_locked_access(); + } + + // debug + //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], 32, ESP_LOG_INFO); // skip to effect block models - read_index += 40; + read_index += 28; // debug //ESP_LOG_BUFFER_HEXDUMP(TAG, (uint8_t*)&buffer[read_index], 80, ESP_LOG_INFO); diff --git a/source/main/valeton_params.c b/source/main/valeton_params.c index a2c8325f..e5124172 100644 --- a/source/main/valeton_params.c +++ b/source/main/valeton_params.c @@ -47,6 +47,7 @@ static SemaphoreHandle_t ParamMutex; static tModellerParameter ValetonParameters[VALETON_GLOBAL_LAST] = { //value, Min, Max, Name Type Data1 Data2 Data 3 + // Block Enables {0, 0, 1, "NG EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_NR, VALETON_BLOCK_ENABLE, 0}, //VALETON_PARAM_NR_ENABLE {0, 0, 1, "PRE EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_PRE, VALETON_BLOCK_ENABLE, 0}, //VALETON_PARAM_PRE_ENABLE, {0, 0, 1, "DST EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_DST, VALETON_BLOCK_ENABLE, 0}, //VALETON_PARAM_DIST_ENABLE, @@ -58,6 +59,7 @@ static tModellerParameter ValetonParameters[VALETON_GLOBAL_LAST] = {0, 0, 1, "RVB EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_RVB, VALETON_BLOCK_ENABLE, 0}, // VALETON_PARAM_RVB_ENABLE, {0, 0, 1, "NS EN", MODELLER_PARAM_TYPE_SWITCH, VALETON_EFFECT_BLOCK_NS, VALETON_BLOCK_ENABLE, 0}, //VALETON_PARAM_NS_ENABLE + // effect block selections {0, 0, 1, "NR TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_NR, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_NR_TYPE, {0, VALETON_EFFECT_PRE_COMP, VALETON_EFFECT_PRE_DETUNE, "PRE TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_PRE, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_PRE_TYPE, {0, VALETON_EFFECT_DIST_GREEN_OD,VALETON_EFFECT_DIST_BASS_OD,"DST TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_DST, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_DIST_TYPE @@ -68,9 +70,21 @@ static tModellerParameter ValetonParameters[VALETON_GLOBAL_LAST] = {0, VALETON_EFFECT_DLY_PURE, VALETON_EFFECT_DLY_PING_PONG,"DL TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_DLY, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_DLY_TYPE, {0, VALETON_EFFECT_RVB_AIR, VALETON_EFFECT_RVB_SWEET_SPACE, "RVB TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_RVB, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_RVB_TYPE, {0, 0, 1, "NS TP", MODELLER_PARAM_TYPE_SELECT, VALETON_EFFECT_BLOCK_NS, VALETON_BLOCK_SELECTION, 0}, //VALETON_PARAM_NS_TYPE - - {0, 0, 100, "PVOL", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, //VALETON_PARAM_PATCH_VOLUME + // general + {0, 0, 100, "PVOL", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, //VALETON_PARAM_PATCH_VOLUME + {0, 0, 10, "ESL0", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, //VALETON_PARAM_EFFECT_SLOT_0 + {0, 0, 10, "ESL1", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, //VALETON_PARAM_EFFECT_SLOT_1 + {0, 0, 10, "ESL2", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, //VALETON_PARAM_EFFECT_SLOT_2 + {0, 0, 10, "ESL3", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, //VALETON_PARAM_EFFECT_SLOT_3 + {0, 0, 10, "ESL4", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, //VALETON_PARAM_EFFECT_SLOT_4 + {0, 0, 10, "ESL5", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, //VALETON_PARAM_EFFECT_SLOT_5 + {0, 0, 10, "ESL6", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, //VALETON_PARAM_EFFECT_SLOT_6 + {0, 0, 10, "ESL7", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, //VALETON_PARAM_EFFECT_SLOT_7 + {0, 0, 10, "ESL8", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, //VALETON_PARAM_EFFECT_SLOT_8 + {0, 0, 10, "ESL9", MODELLER_PARAM_TYPE_RANGE, 0, 0, 0}, //VALETON_PARAM_EFFECT_SLOT_9 + + // effect params {0, 0, 100, "NR 0", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NR, 0, 0}, //VALETON_PARAM_NR_PARAM_0 {0, 0, 100, "NR 1", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NR, 0, 1}, //VALETON_PARAM_NR_PARAM_1 {0, 0, 100, "NR 2", MODELLER_PARAM_TYPE_RANGE, VALETON_EFFECT_BLOCK_NR, 0, 2}, //VALETON_PARAM_NR_PARAM_2 diff --git a/source/main/valeton_params.h b/source/main/valeton_params.h index 8ba3bf0f..e582bf27 100644 --- a/source/main/valeton_params.h +++ b/source/main/valeton_params.h @@ -213,8 +213,18 @@ enum ValetonParameters VALETON_PARAM_RVB_TYPE, VALETON_PARAM_NS_TYPE, - // patch volume + // general stuff VALETON_PARAM_PATCH_VOLUME, + VALETON_PARAM_EFFECT_SLOT_0, + VALETON_PARAM_EFFECT_SLOT_1, + VALETON_PARAM_EFFECT_SLOT_2, + VALETON_PARAM_EFFECT_SLOT_3, + VALETON_PARAM_EFFECT_SLOT_4, + VALETON_PARAM_EFFECT_SLOT_5, + VALETON_PARAM_EFFECT_SLOT_6, + VALETON_PARAM_EFFECT_SLOT_7, + VALETON_PARAM_EFFECT_SLOT_8, + VALETON_PARAM_EFFECT_SLOT_9, // params //**** NR **** From 9428f14adcab527c3a6e3a9fbc2c7f22d93f5e85 Mon Sep 17 00:00:00 2001 From: Greg Smith Date: Sun, 16 Nov 2025 15:35:54 +1100 Subject: [PATCH 15/34] - implemented tap tempo for GP5 to control delay --- source/main/control.c | 16 ++++++++++++++- source/main/usb_valeton_gp5.c | 20 +++++++++++++++++-- ...ex_Controller_480_320.eez-project-ui-state | 6 +++--- ...ontroller_800_480land.eez-project-ui-state | 6 +++--- 4 files changed, 39 insertions(+), 9 deletions(-) diff --git a/source/main/control.c b/source/main/control.c index 0d0cdfe8..d81367e8 100644 --- a/source/main/control.c +++ b/source/main/control.c @@ -43,6 +43,7 @@ limitations under the License. #include "wifi_config.h" #include "task_priorities.h" #include "tonex_params.h" +#include "valeton_params.h" #define CTRL_TASK_STACK_SIZE (3 * 1024) @@ -892,7 +893,20 @@ static uint8_t process_control_command(tControlMessage* message) ESP_LOGI(TAG, "Tap Tempo BPM = %d", (int)bpm); // update pedal - usb_modify_parameter(TONEX_GLOBAL_BPM, ControlData.TapTempo.BPM); + switch (usb_get_connected_modeller_type()) + { + case AMP_MODELLER_TONEX_ONE: // fallthrough + case AMP_MODELLER_TONEX: // fallthrough + default: + { + usb_modify_parameter(TONEX_GLOBAL_BPM, ControlData.TapTempo.BPM); + } break; + + case AMP_MODELLER_VALETON_GP5: + { + usb_modify_parameter(VALETON_GLOBAL_BPM, ControlData.TapTempo.BPM); + } break; + } // save time for next trigger ControlData.TapTempo.LastTime = current_time; diff --git a/source/main/usb_valeton_gp5.c b/source/main/usb_valeton_gp5.c index d3cec48e..2edf4018 100644 --- a/source/main/usb_valeton_gp5.c +++ b/source/main/usb_valeton_gp5.c @@ -1995,8 +1995,24 @@ void usb_valeton_gp5_handle(class_driver_t* driver_obj) } else if (message.Payload < VALETON_GLOBAL_LAST) { - // modify the global - usb_valeton_gp5_set_global(message.Payload, message.PayloadFloat); + if (message.Payload == VALETON_GLOBAL_BPM) + { + // BPM is a virtual parameter. Convert bpm to msec + float delay_time = 60000.0f / message.PayloadFloat; + if (delay_time > 1000.0f) + { + delay_time= 1000.0f; + } + + // adjust delay time + usb_valeton_gp5_modify_parameter(VALETON_PARAM_DLY_PARAM_1, delay_time); + usb_valeton_gp5_send_single_parameter(VALETON_PARAM_DLY_PARAM_1, delay_time); + } + else + { + // modify the global + usb_valeton_gp5_set_global(message.Payload, message.PayloadFloat); + } } else { diff --git a/ui_design_480x320land/Tonex_Controller_480_320.eez-project-ui-state b/ui_design_480x320land/Tonex_Controller_480_320.eez-project-ui-state index 6b8f34d5..4f29b89f 100644 --- a/ui_design_480x320land/Tonex_Controller_480_320.eez-project-ui-state +++ b/ui_design_480x320land/Tonex_Controller_480_320.eez-project-ui-state @@ -165,8 +165,7 @@ "enableClose": false, "icon": "svg:hierarchy" } - ], - "active": true + ] }, { "type": "tabset", @@ -204,7 +203,8 @@ }, "icon": "svg:page" } - ] + ], + "active": true }, { "type": "row", diff --git a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state index d66480e2..b355fbb1 100644 --- a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state +++ b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state @@ -165,8 +165,7 @@ "enableClose": false, "icon": "svg:hierarchy" } - ], - "active": true + ] }, { "type": "tabset", @@ -204,7 +203,8 @@ }, "icon": "svg:page" } - ] + ], + "active": true }, { "type": "row", From 32a561f69f80fb256ab2b4ace917206ab34eb5a9 Mon Sep 17 00:00:00 2001 From: Greg Smith Date: Sun, 16 Nov 2025 17:18:13 +1100 Subject: [PATCH 16/34] - finished off GP5 UI --- source/main/display.c | 15 +++- source/main/display_tonex.c | 15 ++-- source/main/display_valeton.c | 73 ++++++++++++++++--- ...ex_Controller_320_170.eez-project-ui-state | 14 ++-- 4 files changed, 88 insertions(+), 29 deletions(-) diff --git a/source/main/display.c b/source/main/display.c index 051c6a3c..d6b7e636 100644 --- a/source/main/display.c +++ b/source/main/display.c @@ -1031,7 +1031,6 @@ static __attribute__((unused)) uint8_t update_ui_element(tUIUpdate* update) { element_1 = objects.ui_usb_status_fail; -#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI if (update->Value == 1) { // if enabled, adjust UI to suit modeller @@ -1041,22 +1040,32 @@ static __attribute__((unused)) uint8_t update_ui_element(tUIUpdate* update) case AMP_MODELLER_TONEX: // fallthrough default: { +#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI lv_obj_clear_flag(objects.ui_bottom_panel_tonex, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_bottom_panel_valeton, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_project_heading_label, "Tonex Controller"); +#else + // set effect letter to "C" (Compressor) + lv_label_set_text(objects.ui_cstatus, "C"); +#endif + } break; case AMP_MODELLER_VALETON_GP5: { +#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI lv_obj_add_flag(objects.ui_bottom_panel_tonex, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_bottom_panel_valeton, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_project_heading_label, "Valeton Controller"); +#else + // set effect letter to "T" (Distortion) + lv_label_set_text(objects.ui_cstatus, "T"); +#endif } break; } } -#endif } break; case UI_ELEMENT_BT_STATUS: @@ -1114,7 +1123,9 @@ static __attribute__((unused)) uint8_t update_ui_element(tUIUpdate* update) } break; } +#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI updateIconOrder(); +#endif } break; case UI_ELEMENT_TOAST: diff --git a/source/main/display_tonex.c b/source/main/display_tonex.c index 1f5545b3..cbbb3f7a 100644 --- a/source/main/display_tonex.c +++ b/source/main/display_tonex.c @@ -969,11 +969,11 @@ void tonex_update_icon_order(void) *****************************************************************************/ uint8_t tonex_update_ui_parameters(void) { +#if CONFIG_TONEX_CONTROLLER_HAS_DISPLAY tModellerParameter* param_ptr; __attribute__((unused)) char value_string[20]; -#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI - +#if CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI for (uint16_t param = 0; param < TONEX_GLOBAL_LAST; param++) { if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) @@ -2457,13 +2457,7 @@ uint8_t tonex_update_ui_parameters(void) tonex_params_release_locked_access(); } } -#endif - -#if CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_169 \ - || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_169TOUCH \ - || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_M5ATOMS3R \ - || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_LILYGO_TDISPLAY_S3 \ - || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_19TOUCH +#else //CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI for (uint16_t param = 0; param < TONEX_GLOBAL_LAST; param++) { @@ -2536,7 +2530,8 @@ uint8_t tonex_update_ui_parameters(void) tonex_params_release_locked_access(); } } -#endif +#endif //CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI +#endif //CONFIG_TONEX_CONTROLLER_HAS_DISPLAY return 1; } diff --git a/source/main/display_valeton.c b/source/main/display_valeton.c index 57259b1f..e31d1f78 100644 --- a/source/main/display_valeton.c +++ b/source/main/display_valeton.c @@ -777,6 +777,7 @@ void valeton_update_icon_order(void) *****************************************************************************/ uint8_t valeton_update_ui_parameters(void) { +#if CONFIG_TONEX_CONTROLLER_HAS_DISPLAY tModellerParameter* param_ptr; __attribute__((unused)) char value_string[20]; @@ -3183,14 +3184,8 @@ uint8_t valeton_update_ui_parameters(void) valeton_params_release_locked_access(); } } -#endif - -#if CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_169 \ - || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_169TOUCH \ - || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_M5ATOMS3R \ - || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_LILYGO_TDISPLAY_S3 \ - || CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_19TOUCH - +#else //CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI + // Small UI for (uint16_t param = 0; param < VALETON_PARAM_LAST; param++) { if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) @@ -3200,12 +3195,70 @@ uint8_t valeton_update_ui_parameters(void) // debug //ESP_LOGI(TAG, "Param %d: val: %02f, min: %02f, max: %02f", param, param_entry->Value, param_entry->Min, param_entry->Max); - //todo + switch (param) + { + case VALETON_GLOBAL_BPM: + { + char buf[128]; + sprintf(buf, "%d", (int)round(param_entry->Value)); + lv_label_set_text(objects.ui_bpm, buf); + } break; + + case VALETON_PARAM_DIST_ENABLE: + { + if (param_entry->Value) + { + lv_obj_set_style_border_color(objects.ui_cstatus, lv_color_hex(0xDDDD00), LV_PART_MAIN | LV_STATE_DEFAULT); + } + else + { + lv_obj_set_style_border_color(objects.ui_cstatus, lv_color_hex(0x563F2A), LV_PART_MAIN | LV_STATE_DEFAULT); + } + } break; + + case VALETON_PARAM_MOD_ENABLE: + { + if (param_entry->Value) + { + lv_obj_set_style_border_color(objects.ui_mstatus, lv_color_hex(0xEEAA00), LV_PART_MAIN | LV_STATE_DEFAULT); + } + else + { + lv_obj_set_style_border_color(objects.ui_mstatus, lv_color_hex(0x563F2A), LV_PART_MAIN | LV_STATE_DEFAULT); + } + } break; + + case VALETON_PARAM_DLY_ENABLE: + { + if (param_entry->Value) + { + lv_obj_set_style_border_color(objects.ui_dstatus, lv_color_hex(0x00CC00), LV_PART_MAIN | LV_STATE_DEFAULT); + } + else + { + lv_obj_set_style_border_color(objects.ui_dstatus, lv_color_hex(0x563F2A), LV_PART_MAIN | LV_STATE_DEFAULT); + } + } break; + + case VALETON_PARAM_RVB_ENABLE: + { + if (param_entry->Value) + { + lv_obj_set_style_border_color(objects.ui_rstatus, lv_color_hex(0x33FFFF), LV_PART_MAIN | LV_STATE_DEFAULT); + } + else + { + lv_obj_set_style_border_color(objects.ui_rstatus, lv_color_hex(0x563F2A), LV_PART_MAIN | LV_STATE_DEFAULT); + } + } break; + + } valeton_params_release_locked_access(); } } -#endif +#endif //CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI +#endif //CONFIG_TONEX_CONTROLLER_HAS_DISPLAY return 1; } diff --git a/ui_design_320x170land/Tonex_Controller_320_170.eez-project-ui-state b/ui_design_320x170land/Tonex_Controller_320_170.eez-project-ui-state index 8c7be1f7..83b73dbc 100644 --- a/ui_design_320x170land/Tonex_Controller_320_170.eez-project-ui-state +++ b/ui_design_320x170land/Tonex_Controller_320_170.eez-project-ui-state @@ -166,7 +166,8 @@ "enableClose": false, "icon": "svg:hierarchy" } - ] + ], + "active": true }, { "type": "tabset", @@ -224,8 +225,7 @@ "enableClose": false, "icon": "svg:properties" } - ], - "active": true + ] }, { "type": "tabset", @@ -975,13 +975,13 @@ "selection": { "0": { "0": { - "1": {}, + "1": { + "$selected": true + }, "5": {}, "7": {}, "8": { - "0": { - "$selected": true - } + "0": {} } } } From ca2b834e2872e863d7db700df5adb22ad3885452 Mon Sep 17 00:00:00 2001 From: Greg Smith Date: Sun, 16 Nov 2025 21:17:20 +1100 Subject: [PATCH 17/34] - working on GP5 Midi --- source/main/CMakeLists.txt | 2 +- source/main/midi_helper.c | 1931 +--------------------------- source/main/midi_helper.h | 7 + source/main/midi_helper_tonex.c | 1969 +++++++++++++++++++++++++++++ source/main/midi_helper_tonex.h | 21 + source/main/midi_helper_valeton.c | 1227 ++++++++++++++++++ source/main/midi_helper_valeton.h | 21 + 7 files changed, 3272 insertions(+), 1906 deletions(-) create mode 100644 source/main/midi_helper_tonex.c create mode 100644 source/main/midi_helper_tonex.h create mode 100644 source/main/midi_helper_valeton.c create mode 100644 source/main/midi_helper_valeton.h diff --git a/source/main/CMakeLists.txt b/source/main/CMakeLists.txt index 51c2a9e4..193b06f2 100644 --- a/source/main/CMakeLists.txt +++ b/source/main/CMakeLists.txt @@ -1,6 +1,6 @@ idf_component_register(SRCS "platform_pirate_pro_169.c" "platform_pirate_max35.c" "valeton_params.c" "midi_control.c" "control.c" "footswitches.c" "CH422G.c" "display.c" "main.c" "tonex_params.c" "SX1509.c" "display_tonex.c" "display_valeton.c" - "usb_comms.c" "usb_tonex_one.c" "usb_tonex_common.c" "usb_tonex.c" "usb_valeton_gp5.c" "CH422G.c" "midi_serial.c" "wifi_config.c" "leds.c" "midi_helper.c" "LP5562.c" + "usb_comms.c" "usb_tonex_one.c" "usb_tonex_common.c" "usb_tonex.c" "usb_valeton_gp5.c" "CH422G.c" "midi_serial.c" "wifi_config.c" "leds.c" "midi_helper.c" "midi_helper_tonex.c" "midi_helper_valeton.c" "LP5562.c" "platform_devkitc.c" "platform_lgtdisps3.c" "platform_m5atoms3r.c" "platform_ws19t.c" "platform_ws43.c" "platform_wszero.c" "platform_ws169.c" "platform_ws35b.c" "platform_jc3248w.c" INCLUDE_DIRS "." "./" diff --git a/source/main/midi_helper.c b/source/main/midi_helper.c index 7f9834d2..dc035377 100644 --- a/source/main/midi_helper.c +++ b/source/main/midi_helper.c @@ -37,15 +37,12 @@ limitations under the License. #include "usb/usb_host.h" #include "usb_tonex_one.h" #include "tonex_params.h" +#include "midi_helper.h" +#include "midi_helper_tonex.h" +#include "midi_helper_valeton.h" static const char *TAG = "app_midi_helper"; -// for boolean values: -// 0 = off, 127 = on, and 64 to toggle the current state -#define MIDI_BOOL_DISABLE 0 // matches Tonex -#define MIDI_BOOL_TOGGLE 64 // custom for this controller, not natively supported by Tonex -#define MIDI_BOOL_ENABLE 127 // matches Tonex - /**************************************************************************** * NAME: * DESCRIPTION: @@ -72,7 +69,7 @@ float midi_helper_scale_midi_to_float(uint16_t param_index, uint8_t midi_value) * RETURN: * NOTES: *****************************************************************************/ -static float midi_helper_boolean_midi_to_float(uint8_t midi_value) +float midi_helper_boolean_midi_to_float(uint8_t midi_value) { if (midi_value == MIDI_BOOL_ENABLE) { @@ -91,35 +88,22 @@ static float midi_helper_boolean_midi_to_float(uint8_t midi_value) * RETURN: * NOTES: *****************************************************************************/ -static uint8_t midi_helper_boolean_midi_toggle(uint16_t param, uint8_t midi_value, float* value) +esp_err_t midi_helper_adjust_param_via_midi(uint8_t change_num, uint8_t midi_value) { - tModellerParameter* param_ptr; - - if (midi_value == MIDI_BOOL_TOGGLE) + switch (usb_get_connected_modeller_type()) { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - // toggle current state - if (param_ptr[param].Value == 0.0f) - { - *value = 1.0f; - } - else - { - *value = 0.0f; - } - - // release mutex - tonex_params_release_locked_access(); - } - - // toggling - return 1; - } + case AMP_MODELLER_TONEX_ONE: // fallthrough + case AMP_MODELLER_TONEX: // fallthrough + default: + { + return midi_helper_tonex_adjust_param_via_midi(change_num, midi_value); + } break; - // not toggling - return 0; + case AMP_MODELLER_VALETON_GP5: + { + return midi_helper_valeton_adjust_param_via_midi(change_num, midi_value); + } break; + } } /**************************************************************************** @@ -129,1885 +113,22 @@ static uint8_t midi_helper_boolean_midi_toggle(uint16_t param, uint8_t midi_valu * RETURN: * NOTES: *****************************************************************************/ -esp_err_t midi_helper_adjust_param_via_midi(uint8_t change_num, uint8_t midi_value) +uint16_t midi_helper_get_param_for_change_num(uint8_t change_num, uint8_t midi_value_1, uint8_t midi_value_2) { - uint16_t param; - float value; - tModellerParameter* param_ptr; - - // Midi mapping done to match the big Tonex pedal - switch (change_num) + switch (usb_get_connected_modeller_type()) { - // 0: midi patch bank on big tonex - - case 1: - { - param = TONEX_PARAM_DELAY_POST; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 2: - { - param = TONEX_PARAM_DELAY_ENABLE; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 3: - { - param = TONEX_PARAM_DELAY_MODEL; - value = (float)midi_value; - value = tonex_params_clamp_value(param, value); - } break; - - case 4: - { - param = TONEX_PARAM_DELAY_DIGITAL_SYNC; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 5: - { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - if (param_ptr[TONEX_PARAM_DELAY_DIGITAL_SYNC].Value == 0.00f) - { - ESP_LOGW(TAG, "TONEX_PARAM_DELAY_DIGITAL_TIME"); - - param = TONEX_PARAM_DELAY_DIGITAL_TIME; - - // release mutex as next functions need it - tonex_params_release_locked_access(); - - // scale the value to the time range - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } - else - { - ESP_LOGW(TAG, "TONEX_PARAM_DELAY_DIGITAL_TS"); - - param = TONEX_PARAM_DELAY_DIGITAL_TS; - - // release mutex as next functions need it - tonex_params_release_locked_access(); - - // set the time sign - value = (float)midi_value; - value = tonex_params_clamp_value(param, value); - } - } - else - { - // failed to get access to params - ESP_LOGW(TAG, "TONEX_PARAM_DELAY_DIGITAL_TIME param access failed"); - return ESP_FAIL; - } - } break; - - case 6: - { - param = TONEX_PARAM_DELAY_DIGITAL_FEEDBACK; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 7: - { - param = TONEX_PARAM_DELAY_DIGITAL_MODE; - if (midi_value == 64) - { - value = 1.0f; - } - else - { - value = 0.0f; - } - value = tonex_params_clamp_value(param, value); - } break; - - case 8: - { - param = TONEX_PARAM_DELAY_DIGITAL_MIX; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - // 9 tuner - - case 10: - { - //tap tempo - control_trigger_tap_tempo(); - - // no param change needed - return ESP_OK; - } break; - - // 11: expression pedal - - case 12: - { - //preset on/off - param = TONEX_GLOBAL_BYPASS; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 13: - { - param = TONEX_PARAM_NOISE_GATE_POST; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 14: - { - param = TONEX_PARAM_NOISE_GATE_ENABLE; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 15: - { - param = TONEX_PARAM_NOISE_GATE_THRESHOLD; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 16: - { - param = TONEX_PARAM_NOISE_GATE_RELEASE; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 17: - { - param = TONEX_PARAM_NOISE_GATE_DEPTH; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 18: - { - param = TONEX_PARAM_COMP_ENABLE; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 19: - { - param = TONEX_PARAM_COMP_THRESHOLD; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 20: - { - param = TONEX_PARAM_COMP_MAKE_UP; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 21: - { - param = TONEX_PARAM_COMP_ATTACK; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 22: - { - param = TONEX_PARAM_COMP_POST; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 23: - { - param = TONEX_PARAM_EQ_BASS; - value = midi_helper_scale_midi_to_float(param, midi_value); - } break; - - case 24: - { - param = TONEX_PARAM_EQ_BASS_FREQ; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 25: - { - param = TONEX_PARAM_EQ_MID; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 26: - { - param = TONEX_PARAM_EQ_MIDQ; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 27: - { - param = TONEX_PARAM_EQ_MID_FREQ; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 28: - { - param = TONEX_PARAM_EQ_TREBLE; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 29: - { - param = TONEX_PARAM_EQ_TREBLE_FREQ; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 30: - { - param = TONEX_PARAM_EQ_POST; - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 31: - { - param = TONEX_PARAM_MODULATION_POST; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 32: - { - param = TONEX_PARAM_MODULATION_ENABLE; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 33: - { - param = TONEX_PARAM_MODULATION_MODEL; - value = (float)midi_value; - value = tonex_params_clamp_value(param, value); - } break; - - case 34: - { - param = TONEX_PARAM_MODULATION_CHORUS_SYNC; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 35: - { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - if (param_ptr[TONEX_PARAM_MODULATION_CHORUS_SYNC].Value == 0.00f) - { - param = TONEX_PARAM_MODULATION_CHORUS_RATE; - - // release mutex as next functions need it - tonex_params_release_locked_access(); - - // scale the value to the time range - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } - else - { - param = TONEX_PARAM_MODULATION_CHORUS_TS; - - // release mutex as next functions need it - tonex_params_release_locked_access(); - - // set the time sign - value = (float)midi_value; - value = tonex_params_clamp_value(param, value); - } - } - else - { - // failed to get access to params - return ESP_FAIL; - } - } break; - - case 36: - { - param = TONEX_PARAM_MODULATION_CHORUS_DEPTH; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 37: - { - param = TONEX_PARAM_MODULATION_CHORUS_LEVEL; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 38: - { - param = TONEX_PARAM_MODULATION_TREMOLO_SYNC; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 39: - { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - if (param_ptr[TONEX_PARAM_MODULATION_TREMOLO_SYNC].Value == 0.00f) - { - param = TONEX_PARAM_MODULATION_TREMOLO_RATE; - - // release mutex as next functions need it - tonex_params_release_locked_access(); - - // scale the value to the time range - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } - else - { - param = TONEX_PARAM_MODULATION_TREMOLO_TS; - - // release mutex as next functions need it - tonex_params_release_locked_access(); - - // set the time sign - value = (float)midi_value; - value = tonex_params_clamp_value(param, value); - } - } - else - { - // failed to get access to params - return ESP_FAIL; - } - } break; - - case 40: - { - param = TONEX_PARAM_MODULATION_TREMOLO_SHAPE; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 41: - { - param = TONEX_PARAM_MODULATION_TREMOLO_SPREAD; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 42: - { - param = TONEX_PARAM_MODULATION_TREMOLO_LEVEL; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 43: - { - param = TONEX_PARAM_MODULATION_PHASER_SYNC; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 44: - { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - if (param_ptr[TONEX_PARAM_MODULATION_PHASER_SYNC].Value == 0.00f) - { - param = TONEX_PARAM_MODULATION_PHASER_RATE; - - // release mutex as next functions need it - tonex_params_release_locked_access(); - - // scale the value to the time range - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } - else - { - param = TONEX_PARAM_MODULATION_PHASER_TS; - - // release mutex as next functions need it - tonex_params_release_locked_access(); - - // set the time sign - value = (float)midi_value; - value = tonex_params_clamp_value(param, value); - } - } - else - { - // failed to get access to params - return ESP_FAIL; - } - } break; - - case 45: - { - param = TONEX_PARAM_MODULATION_PHASER_DEPTH; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 46: - { - param = TONEX_PARAM_MODULATION_PHASER_LEVEL; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 47: - { - param = TONEX_PARAM_MODULATION_FLANGER_SYNC; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 48: - { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - if (param_ptr[TONEX_PARAM_MODULATION_FLANGER_SYNC].Value == 0.00f) - { - param = TONEX_PARAM_MODULATION_FLANGER_RATE; - - // release mutex as next functions need it - tonex_params_release_locked_access(); - - // scale the value to the time range - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } - else - { - param = TONEX_PARAM_MODULATION_FLANGER_TS; - - // release mutex as next functions need it - tonex_params_release_locked_access(); - - // set the time sign - value = (float)midi_value; - value = tonex_params_clamp_value(param, value); - } - } - else - { - // failed to get access to params - return ESP_FAIL; - } - } break; - - case 49: - { - param = TONEX_PARAM_MODULATION_FLANGER_DEPTH; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 50: - { - param = TONEX_PARAM_MODULATION_FLANGER_FEEDBACK; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 51: - { - param = TONEX_PARAM_MODULATION_FLANGER_LEVEL; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 52: - { - param = TONEX_PARAM_MODULATION_ROTARY_SYNC; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 53: - { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - if (param_ptr[TONEX_PARAM_MODULATION_ROTARY_SYNC].Value == 0.00f) - { - param = TONEX_PARAM_MODULATION_ROTARY_SPEED; - - // release mutex as next functions need it - tonex_params_release_locked_access(); - - // scale the value to the time range - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } - else - { - param = TONEX_PARAM_MODULATION_ROTARY_TS; - - // release mutex as next functions need it - tonex_params_release_locked_access(); - - // set the time sign - value = (float)midi_value; - value = tonex_params_clamp_value(param, value); - } - } - else - { - // failed to get access to params - return ESP_FAIL; - } - } break; - - case 54: - { - param = TONEX_PARAM_MODULATION_ROTARY_RADIUS; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 55: - { - param = TONEX_PARAM_MODULATION_ROTARY_SPREAD; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 56: - { - param = TONEX_PARAM_MODULATION_ROTARY_LEVEL; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - // 57 - 58 not used - - case 59: - { - param = TONEX_PARAM_REVERB_SPRING1_TIME; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 60: + case AMP_MODELLER_TONEX_ONE: // fallthrough + case AMP_MODELLER_TONEX: // fallthrough + default: { - param = TONEX_PARAM_REVERB_SPRING1_PREDELAY; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); + return midi_helper_tonex_get_param_for_change_num(change_num, midi_value_1, midi_value_2); } break; - case 61: + case AMP_MODELLER_VALETON_GP5: { - param = TONEX_PARAM_REVERB_SPRING1_COLOR; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); + return midi_helper_valeton_get_param_for_change_num(change_num, midi_value_1, midi_value_2); } break; - - case 62: - { - param = TONEX_PARAM_REVERB_SPRING1_MIX; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 63: - { - param = TONEX_PARAM_REVERB_SPRING2_TIME; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 64: - { - param = TONEX_PARAM_REVERB_SPRING2_PREDELAY; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 65: - { - param = TONEX_PARAM_REVERB_SPRING2_COLOR; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 66: - { - param = TONEX_PARAM_REVERB_SPRING2_MIX; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 67: - { - param = TONEX_PARAM_REVERB_SPRING3_TIME; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 68: - { - param = TONEX_PARAM_REVERB_SPRING3_PREDELAY; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 69: - { - param = TONEX_PARAM_REVERB_SPRING3_COLOR; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 70: - { - param = TONEX_PARAM_REVERB_SPRING3_MIX; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 71: - { - param = TONEX_PARAM_REVERB_ROOM_TIME; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 72: - { - param = TONEX_PARAM_REVERB_ROOM_PREDELAY; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 73: - { - param = TONEX_PARAM_REVERB_ROOM_COLOR; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 74: - { - param = TONEX_PARAM_REVERB_ROOM_MIX; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 75: - { - param = TONEX_PARAM_REVERB_ENABLE; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 76: - { - param = TONEX_PARAM_REVERB_PLATE_TIME; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 77: - { - param = TONEX_PARAM_REVERB_PLATE_PREDELAY; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 78: - { - param = TONEX_PARAM_REVERB_PLATE_COLOR; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 79: - { - param = TONEX_PARAM_REVERB_PLATE_MIX; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 80: - { - param = TONEX_PARAM_REVERB_SPRING4_TIME; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 81: - { - param = TONEX_PARAM_REVERB_SPRING4_PREDELAY; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 82: - { - param = TONEX_PARAM_REVERB_SPRING4_COLOR; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 83: - { - param = TONEX_PARAM_REVERB_SPRING4_MIX; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 84: - { - param = TONEX_PARAM_REVERB_POSITION; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 85: - { - param = TONEX_PARAM_REVERB_MODEL; - value = (float)midi_value; - value = tonex_params_clamp_value(param, value); - } break; - - case 86: - { - //preset down - control_request_preset_down(); - - // no param change needed - return ESP_OK; - } break; - - case 87: - { - //preset up - control_request_preset_up(); - - // no param change needed - return ESP_OK; - } break; - - case 88: - { - // bpm - param = TONEX_GLOBAL_BPM; - value = midi_helper_scale_midi_to_float(param, midi_value); - } break; - - // 89: bank down - // 90: bank up - - case 91: - { - param = TONEX_PARAM_DELAY_TAPE_SYNC; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 92: - { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - if (param_ptr[TONEX_PARAM_DELAY_TAPE_SYNC].Value == 0.00f) - { - param = TONEX_PARAM_DELAY_TAPE_TIME; - - // release mutex as next functions need it - tonex_params_release_locked_access(); - - // scale the value to the time range - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } - else - { - param = TONEX_PARAM_DELAY_TAPE_TS; - - // release mutex as next functions need it - tonex_params_release_locked_access(); - - // set the time sign - value = (float)midi_value; - value = tonex_params_clamp_value(param, value); - } - } - else - { - // failed to get access to params - return ESP_FAIL; - } - } break; - - case 93: - { - param = TONEX_PARAM_DELAY_TAPE_FEEDBACK; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 94: - { - param = TONEX_PARAM_DELAY_TAPE_MODE; - if (midi_value == 64) - { - value = 1.0f; - } - else - { - value = 0.0f; - } - value = tonex_params_clamp_value(param, value); - } break; - - case 95: - { - param = TONEX_PARAM_DELAY_TAPE_MIX; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - // 96 to 101 not used - - case 99: - { - // bpm - param = TONEX_GLOBAL_BPM; - value = (midi_value < 40) ? 40 : midi_value; - } break; - - case 100: - { - // bpm - param = TONEX_GLOBAL_BPM; - value = midi_value+100; - } break; - - case 102: - { - param = TONEX_PARAM_MODEL_GAIN; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 103: - { - param = TONEX_PARAM_MODEL_VOLUME; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 104: - { - param = TONEX_PARAM_MODEX_MIX; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - // 105 not used - - case 106: - { - param = TONEX_PARAM_MODEL_PRESENCE; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 107: - { - param = TONEX_PARAM_MODEL_DEPTH; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 108: - { - param = TONEX_PARAM_VIR_RESO; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 109: - { - param = TONEX_PARAM_VIR_MIC_1; - value = (float)midi_value; - value = tonex_params_clamp_value(param, value); - } break; - - case 110: - { - param = TONEX_PARAM_VIR_MIC_1_X; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 111: - { - param = TONEX_PARAM_VIR_MIC_1_Z; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 112: - { - param = TONEX_PARAM_VIR_MIC_2; - value = (float)midi_value; - value = tonex_params_clamp_value(param, value); - } break; - - case 113: - { - param = TONEX_PARAM_VIR_MIC_2_X; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 114: - { - param = TONEX_PARAM_VIR_MIC_2_Z; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 115: - { - param = TONEX_PARAM_VIR_BLEND; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - // below items not supported on bigger Tonex pedal, custom for this controller - case 116: - { - // input trim - param = TONEX_GLOBAL_INPUT_TRIM; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 117: - { - param = TONEX_GLOBAL_CABSIM_BYPASS; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 118: - { - param = TONEX_GLOBAL_TEMPO_SOURCE; - - // check for toggling - if (!midi_helper_boolean_midi_toggle(param, midi_value, &value)) - { - value = midi_helper_boolean_midi_to_float(midi_value); - value = tonex_params_clamp_value(param, value); - } - } break; - - case 119: - { - param = TONEX_GLOBAL_TUNING_REFERENCE; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 120: - { - // Load preset to Slot A without switching to it - if (midi_value >= (usb_get_max_presets_for_connected_modeller())) - { - ESP_LOGW(TAG, "Unsupported Midi CC 120 value %d (max %d)", midi_value, usb_get_max_presets_for_connected_modeller() - 1); - } - else - { - usb_load_preset_to_slot_a(midi_value); - } - - // no param change needed - return ESP_OK; - } break; - - case 121: - { - // Load preset to Slot B without switching to it - if (midi_value >= (usb_get_max_presets_for_connected_modeller())) - { - ESP_LOGW(TAG, "Unsupported Midi CC 121 value %d (max %d)", midi_value, usb_get_max_presets_for_connected_modeller() - 1); - } - else - { - usb_load_preset_to_slot_b(midi_value); - } - - // no param change needed - return ESP_OK; - } break; - - case 122: - { - param = TONEX_GLOBAL_MASTER_VOLUME; - value = midi_helper_scale_midi_to_float(param, midi_value); - value = tonex_params_clamp_value(param, value); - } break; - - case 127: - { - // Custom case: use CC to change params. - if (midi_value >= (usb_get_max_presets_for_connected_modeller())) - { - ESP_LOGW(TAG, "Unsupported Midi CC 127 value %d", midi_value); - } - else - { - control_request_preset_index(midi_value); - } - - // no param change needed - return ESP_OK; - } break; - - default: - { - ESP_LOGW(TAG, "Unsupported Midi change number %d", change_num); - return ESP_FAIL; - } break; - } - - // modify the parameter - usb_modify_parameter(param, value); - - return ESP_OK; -} - -/**************************************************************************** -* NAME: -* DESCRIPTION: -* PARAMETERS: -* RETURN: -* NOTES: -*****************************************************************************/ -uint16_t midi_helper_get_param_for_change_num(uint8_t change_num, uint8_t midi_value_1, uint8_t midi_value_2) -{ - uint16_t param = TONEX_UNKNOWN; - tModellerParameter* param_ptr; - - // Midi mapping done to match the big Tonex pedal - switch (change_num) - { - // 0: midi patch bank on big tonex - - case 1: - { - param = TONEX_PARAM_DELAY_POST; - } break; - - case 2: - { - param = TONEX_PARAM_DELAY_ENABLE; - } break; - - case 3: - { - param = TONEX_PARAM_DELAY_MODEL; - } break; - - case 4: - { - param = TONEX_PARAM_DELAY_DIGITAL_SYNC; - } break; - - case 5: - { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - if (param_ptr[TONEX_PARAM_DELAY_DIGITAL_SYNC].Value == 0.00f) - { - param = TONEX_PARAM_DELAY_DIGITAL_TIME; - } - else - { - param = TONEX_PARAM_DELAY_DIGITAL_TS; - } - - // release mutex - tonex_params_release_locked_access(); - } - } break; - - case 6: - { - param = TONEX_PARAM_DELAY_DIGITAL_FEEDBACK; - } break; - - case 7: - { - param = TONEX_PARAM_DELAY_DIGITAL_MODE; - } break; - - case 8: - { - param = TONEX_PARAM_DELAY_DIGITAL_MIX; - } break; - - // 9 tuner - - case 10: - { - // BPM - param = TONEX_GLOBAL_BPM; - } break; - - // 11: expression pedal - - case 12: - { - // preset on/off - param = TONEX_GLOBAL_BYPASS; - } break; - - case 13: - { - param = TONEX_PARAM_NOISE_GATE_POST; - } break; - - case 14: - { - param = TONEX_PARAM_NOISE_GATE_ENABLE; - } break; - - case 15: - { - param = TONEX_PARAM_NOISE_GATE_THRESHOLD; - } break; - - case 16: - { - param = TONEX_PARAM_NOISE_GATE_RELEASE; - } break; - - case 17: - { - param = TONEX_PARAM_NOISE_GATE_DEPTH; - } break; - - case 18: - { - param = TONEX_PARAM_COMP_ENABLE; - } break; - - case 19: - { - param = TONEX_PARAM_COMP_THRESHOLD; - } break; - - case 20: - { - param = TONEX_PARAM_COMP_MAKE_UP; - } break; - - case 21: - { - param = TONEX_PARAM_COMP_ATTACK; - } break; - - case 22: - { - param = TONEX_PARAM_COMP_POST; - } break; - - case 23: - { - param = TONEX_PARAM_EQ_BASS; - } break; - - case 24: - { - param = TONEX_PARAM_EQ_BASS_FREQ; - } break; - - case 25: - { - param = TONEX_PARAM_EQ_MID; - } break; - - case 26: - { - param = TONEX_PARAM_EQ_MIDQ; - } break; - - case 27: - { - param = TONEX_PARAM_EQ_MID_FREQ; - } break; - - case 28: - { - param = TONEX_PARAM_EQ_TREBLE; - } break; - - case 29: - { - param = TONEX_PARAM_EQ_TREBLE_FREQ; - } break; - - case 30: - { - param = TONEX_PARAM_EQ_POST; - } break; - - case 31: - { - param = TONEX_PARAM_MODULATION_POST; - } break; - - case 32: - { - param = TONEX_PARAM_MODULATION_ENABLE; - } break; - - case 33: - { - param = TONEX_PARAM_MODULATION_MODEL; - } break; - - case 34: - { - param = TONEX_PARAM_MODULATION_CHORUS_SYNC; - } break; - - case 35: - { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - if (param_ptr[TONEX_PARAM_MODULATION_CHORUS_SYNC].Value == 0.00f) - { - param = TONEX_PARAM_MODULATION_CHORUS_RATE; - } - else - { - param = TONEX_PARAM_MODULATION_CHORUS_TS; - } - - // release mutex - tonex_params_release_locked_access(); - } - } break; - - case 36: - { - param = TONEX_PARAM_MODULATION_CHORUS_DEPTH; - } break; - - case 37: - { - param = TONEX_PARAM_MODULATION_CHORUS_LEVEL; - } break; - - case 38: - { - param = TONEX_PARAM_MODULATION_TREMOLO_SYNC; - } break; - - case 39: - { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - if (param_ptr[TONEX_PARAM_MODULATION_TREMOLO_SYNC].Value == 0.00f) - { - param = TONEX_PARAM_MODULATION_TREMOLO_RATE; - } - else - { - param = TONEX_PARAM_MODULATION_TREMOLO_TS; - } - - // release mutex - tonex_params_release_locked_access(); - } - } break; - - case 40: - { - param = TONEX_PARAM_MODULATION_TREMOLO_SHAPE; - } break; - - case 41: - { - param = TONEX_PARAM_MODULATION_TREMOLO_SPREAD; - } break; - - case 42: - { - param = TONEX_PARAM_MODULATION_TREMOLO_LEVEL; - } break; - - case 43: - { - param = TONEX_PARAM_MODULATION_PHASER_SYNC; - } break; - - case 44: - { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - if (param_ptr[TONEX_PARAM_MODULATION_PHASER_SYNC].Value == 0.00f) - { - param = TONEX_PARAM_MODULATION_PHASER_RATE; - } - else - { - param = TONEX_PARAM_MODULATION_PHASER_TS; - } - - // release mutex - tonex_params_release_locked_access(); - } - } break; - - case 45: - { - param = TONEX_PARAM_MODULATION_PHASER_DEPTH; - } break; - - case 46: - { - param = TONEX_PARAM_MODULATION_PHASER_LEVEL; - } break; - - case 47: - { - param = TONEX_PARAM_MODULATION_FLANGER_SYNC; - } break; - - case 48: - { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - if (param_ptr[TONEX_PARAM_MODULATION_FLANGER_SYNC].Value == 0.00f) - { - param = TONEX_PARAM_MODULATION_FLANGER_RATE; - } - else - { - param = TONEX_PARAM_MODULATION_FLANGER_TS; - } - - // release mutex - tonex_params_release_locked_access(); - } - } break; - - case 49: - { - param = TONEX_PARAM_MODULATION_FLANGER_DEPTH; - } break; - - case 50: - { - param = TONEX_PARAM_MODULATION_FLANGER_FEEDBACK; - } break; - - case 51: - { - param = TONEX_PARAM_MODULATION_FLANGER_LEVEL; - } break; - - case 52: - { - param = TONEX_PARAM_MODULATION_ROTARY_SYNC; - } break; - - case 53: - { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - if (param_ptr[TONEX_PARAM_MODULATION_ROTARY_SYNC].Value == 0.00f) - { - param = TONEX_PARAM_MODULATION_ROTARY_SPEED; - } - else - { - param = TONEX_PARAM_MODULATION_ROTARY_TS; - } - - // release mutex - tonex_params_release_locked_access(); - } - } break; - - case 54: - { - param = TONEX_PARAM_MODULATION_ROTARY_RADIUS; - } break; - - case 55: - { - param = TONEX_PARAM_MODULATION_ROTARY_SPREAD; - } break; - - case 56: - { - param = TONEX_PARAM_MODULATION_ROTARY_LEVEL; - } break; - - // 57 - 58 not used - - case 59: - { - param = TONEX_PARAM_REVERB_SPRING1_TIME; - } break; - - case 60: - { - param = TONEX_PARAM_REVERB_SPRING1_PREDELAY; - } break; - - case 61: - { - param = TONEX_PARAM_REVERB_SPRING1_COLOR; - } break; - - case 62: - { - param = TONEX_PARAM_REVERB_SPRING1_MIX; - } break; - - case 63: - { - param = TONEX_PARAM_REVERB_SPRING2_TIME; - } break; - - case 64: - { - param = TONEX_PARAM_REVERB_SPRING2_PREDELAY; - } break; - - case 65: - { - param = TONEX_PARAM_REVERB_SPRING2_COLOR; - } break; - - case 66: - { - param = TONEX_PARAM_REVERB_SPRING2_MIX; - } break; - - case 67: - { - param = TONEX_PARAM_REVERB_SPRING3_TIME; - } break; - - case 68: - { - param = TONEX_PARAM_REVERB_SPRING3_PREDELAY; - } break; - - case 69: - { - param = TONEX_PARAM_REVERB_SPRING3_COLOR; - } break; - - case 70: - { - param = TONEX_PARAM_REVERB_SPRING3_MIX; - } break; - - case 71: - { - param = TONEX_PARAM_REVERB_ROOM_TIME; - } break; - - case 72: - { - param = TONEX_PARAM_REVERB_ROOM_PREDELAY; - } break; - - case 73: - { - param = TONEX_PARAM_REVERB_ROOM_COLOR; - } break; - - case 74: - { - param = TONEX_PARAM_REVERB_ROOM_MIX; - } break; - - case 75: - { - param = TONEX_PARAM_REVERB_ENABLE; - } break; - - case 76: - { - param = TONEX_PARAM_REVERB_PLATE_TIME; - } break; - - case 77: - { - param = TONEX_PARAM_REVERB_PLATE_PREDELAY; - } break; - - case 78: - { - param = TONEX_PARAM_REVERB_PLATE_COLOR; - } break; - - case 79: - { - param = TONEX_PARAM_REVERB_PLATE_MIX; - } break; - - case 80: - { - param = TONEX_PARAM_REVERB_SPRING4_TIME; - } break; - - case 81: - { - param = TONEX_PARAM_REVERB_SPRING4_PREDELAY; - } break; - - case 82: - { - param = TONEX_PARAM_REVERB_SPRING4_COLOR; - } break; - - case 83: - { - param = TONEX_PARAM_REVERB_SPRING4_MIX; - } break; - - case 84: - { - param = TONEX_PARAM_REVERB_POSITION; - } break; - - case 85: - { - param = TONEX_PARAM_REVERB_MODEL; - } break; - - case 86: - { - // preset down - control_request_preset_down(); - - // don't set any return param, as this one is already handled and its not a parameter - } break; - - case 87: - { - //preset up - control_request_preset_up(); - - // don't set any return param, as this one is already handled and its not a parameter - } break; - - case 88: - { - //bpm - param = TONEX_GLOBAL_BPM; - } break; - - // 89: bank down - // 90: bank up - - case 91: - { - param = TONEX_PARAM_DELAY_TAPE_SYNC; - } break; - - case 92: - { - // take mutex - if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) - { - if (param_ptr[TONEX_PARAM_DELAY_TAPE_SYNC].Value == 0.00f) - { - param = TONEX_PARAM_DELAY_TAPE_TIME; - } - else - { - param = TONEX_PARAM_DELAY_TAPE_TS; - } - - // release mutex - tonex_params_release_locked_access(); - } - } break; - - case 93: - { - param = TONEX_PARAM_DELAY_TAPE_FEEDBACK; - } break; - - case 94: - { - param = TONEX_PARAM_DELAY_TAPE_MODE; - } break; - - case 95: - { - param = TONEX_PARAM_DELAY_TAPE_MIX; - } break; - - // 96 to 101 not used - - case 102: - { - param = TONEX_PARAM_MODEL_GAIN; - } break; - - case 103: - { - param = TONEX_PARAM_MODEL_VOLUME; - } break; - - case 104: - { - param = TONEX_PARAM_MODEX_MIX; - } break; - - // 105 not used - - case 106: - { - param = TONEX_PARAM_MODEL_PRESENCE; - } break; - - case 107: - { - param = TONEX_PARAM_MODEL_DEPTH; - } break; - - case 108: - { - param = TONEX_PARAM_VIR_RESO; - } break; - - case 109: - { - param = TONEX_PARAM_VIR_MIC_1; - } break; - - case 110: - { - param = TONEX_PARAM_VIR_MIC_1_X; - } break; - - case 111: - { - param = TONEX_PARAM_VIR_MIC_1_Z; - } break; - - case 112: - { - param = TONEX_PARAM_VIR_MIC_2; - } break; - - case 113: - { - param = TONEX_PARAM_VIR_MIC_2_X; - } break; - - case 114: - { - param = TONEX_PARAM_VIR_MIC_2_Z; - } break; - - case 115: - { - param = TONEX_PARAM_VIR_BLEND; - } break; - - // below items not supported on bigger Tonex pedal, custom for this controller - case 116: - { - param = TONEX_GLOBAL_INPUT_TRIM; - } break; - - case 117: - { - param = TONEX_GLOBAL_CABSIM_BYPASS; - } break; - - case 118: - { - param = TONEX_GLOBAL_TEMPO_SOURCE; - } break; - - case 119: - { - param = TONEX_GLOBAL_TUNING_REFERENCE; - } break; - - case 120: - { - // reserved for setting preset in slot A - } break; - - case 121: - { - // reserved for setting preset in slot B - } break; - - case 122: - { - param = TONEX_GLOBAL_MASTER_VOLUME; - } break; - - case 127: - { - uint32_t new_preset; - uint32_t current_preset = control_get_current_preset_index(); - - if (current_preset == midi_value_1) - { - // select midi value 2 - new_preset = midi_value_2; - } - else - { - // select midi value 1 - new_preset = midi_value_1; - } - - if (new_preset >= (usb_get_max_presets_for_connected_modeller())) - { - ESP_LOGW(TAG, "Unsupported Midi CC 127 value %d", new_preset); - } - else - { - control_request_preset_index(new_preset); - } - - // don't set any return param, as this one is already handled and its not a parameter - } - } - - return param; + } } /**************************************************************************** diff --git a/source/main/midi_helper.h b/source/main/midi_helper.h index 047938f0..c4b7fbe3 100644 --- a/source/main/midi_helper.h +++ b/source/main/midi_helper.h @@ -17,7 +17,14 @@ limitations under the License. #pragma once +// for boolean values: +// 0 = off, 127 = on, and 64 to toggle the current state +#define MIDI_BOOL_DISABLE 0 // matches Tonex +#define MIDI_BOOL_TOGGLE 64 // custom for this controller, not natively supported by Tonex +#define MIDI_BOOL_ENABLE 127 // matches Tonex + esp_err_t midi_helper_adjust_param_via_midi(uint8_t change_num, uint8_t midi_value); uint16_t midi_helper_get_param_for_change_num(uint8_t change_num, uint8_t midi_value_1, uint8_t midi_value_2); float midi_helper_scale_midi_to_float(uint16_t param_index, uint8_t midi_value); +float midi_helper_boolean_midi_to_float(uint8_t midi_value); uint8_t midi_helper_process_incoming_data(uint8_t* data, uint8_t length, uint8_t midi_channel, uint8_t enable_CC); diff --git a/source/main/midi_helper_tonex.c b/source/main/midi_helper_tonex.c new file mode 100644 index 00000000..4038caeb --- /dev/null +++ b/source/main/midi_helper_tonex.c @@ -0,0 +1,1969 @@ +/* + Copyright (C) 2025 Greg Smith + +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. + +*/ + + +#include +#include +#include +#include "sdkconfig.h" +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "freertos/semphr.h" +#include "esp_check.h" +#include "esp_log.h" +#include "usb/usb_host.h" +#include "driver/i2c.h" +#include "nvs_flash.h" +#include "esp_vfs.h" +#include "esp_vfs_fat.h" +#include "esp_ota_ops.h" +#include "sys/param.h" +#include "control.h" +#include "usb_comms.h" +#include "usb/usb_host.h" +#include "usb_tonex_one.h" +#include "tonex_params.h" +#include "midi_helper.h" +#include "midi_helper_tonex.h" + +static const char *TAG = "app_midi_helper_tonex"; + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +static uint8_t midi_helper_tonex_boolean_midi_toggle(uint16_t param, uint8_t midi_value, float* value) +{ + tModellerParameter* param_ptr; + + if (midi_value == MIDI_BOOL_TOGGLE) + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + // toggle current state + if (param_ptr[param].Value == 0.0f) + { + *value = 1.0f; + } + else + { + *value = 0.0f; + } + + // release mutex + tonex_params_release_locked_access(); + } + + // toggling + return 1; + } + + // not toggling + return 0; +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +esp_err_t midi_helper_tonex_adjust_param_via_midi(uint8_t change_num, uint8_t midi_value) +{ + uint16_t param; + float value; + tModellerParameter* param_ptr; + + // Midi mapping done to match the big Tonex pedal + switch (change_num) + { + // 0: midi patch bank on big tonex + + case 1: + { + param = TONEX_PARAM_DELAY_POST; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 2: + { + param = TONEX_PARAM_DELAY_ENABLE; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 3: + { + param = TONEX_PARAM_DELAY_MODEL; + value = (float)midi_value; + value = tonex_params_clamp_value(param, value); + } break; + + case 4: + { + param = TONEX_PARAM_DELAY_DIGITAL_SYNC; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 5: + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[TONEX_PARAM_DELAY_DIGITAL_SYNC].Value == 0.00f) + { + ESP_LOGW(TAG, "TONEX_PARAM_DELAY_DIGITAL_TIME"); + + param = TONEX_PARAM_DELAY_DIGITAL_TIME; + + // release mutex as next functions need it + tonex_params_release_locked_access(); + + // scale the value to the time range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } + else + { + ESP_LOGW(TAG, "TONEX_PARAM_DELAY_DIGITAL_TS"); + + param = TONEX_PARAM_DELAY_DIGITAL_TS; + + // release mutex as next functions need it + tonex_params_release_locked_access(); + + // set the time sign + value = (float)midi_value; + value = tonex_params_clamp_value(param, value); + } + } + else + { + // failed to get access to params + ESP_LOGW(TAG, "TONEX_PARAM_DELAY_DIGITAL_TIME param access failed"); + return ESP_FAIL; + } + } break; + + case 6: + { + param = TONEX_PARAM_DELAY_DIGITAL_FEEDBACK; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 7: + { + param = TONEX_PARAM_DELAY_DIGITAL_MODE; + if (midi_value == 64) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + value = tonex_params_clamp_value(param, value); + } break; + + case 8: + { + param = TONEX_PARAM_DELAY_DIGITAL_MIX; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + // 9 tuner + + case 10: + { + //tap tempo + control_trigger_tap_tempo(); + + // no param change needed + return ESP_OK; + } break; + + // 11: expression pedal + + case 12: + { + //preset on/off + param = TONEX_GLOBAL_BYPASS; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 13: + { + param = TONEX_PARAM_NOISE_GATE_POST; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 14: + { + param = TONEX_PARAM_NOISE_GATE_ENABLE; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 15: + { + param = TONEX_PARAM_NOISE_GATE_THRESHOLD; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 16: + { + param = TONEX_PARAM_NOISE_GATE_RELEASE; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 17: + { + param = TONEX_PARAM_NOISE_GATE_DEPTH; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 18: + { + param = TONEX_PARAM_COMP_ENABLE; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 19: + { + param = TONEX_PARAM_COMP_THRESHOLD; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 20: + { + param = TONEX_PARAM_COMP_MAKE_UP; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 21: + { + param = TONEX_PARAM_COMP_ATTACK; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 22: + { + param = TONEX_PARAM_COMP_POST; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 23: + { + param = TONEX_PARAM_EQ_BASS; + value = midi_helper_scale_midi_to_float(param, midi_value); + } break; + + case 24: + { + param = TONEX_PARAM_EQ_BASS_FREQ; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 25: + { + param = TONEX_PARAM_EQ_MID; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 26: + { + param = TONEX_PARAM_EQ_MIDQ; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 27: + { + param = TONEX_PARAM_EQ_MID_FREQ; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 28: + { + param = TONEX_PARAM_EQ_TREBLE; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 29: + { + param = TONEX_PARAM_EQ_TREBLE_FREQ; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 30: + { + param = TONEX_PARAM_EQ_POST; + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 31: + { + param = TONEX_PARAM_MODULATION_POST; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 32: + { + param = TONEX_PARAM_MODULATION_ENABLE; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 33: + { + param = TONEX_PARAM_MODULATION_MODEL; + value = (float)midi_value; + value = tonex_params_clamp_value(param, value); + } break; + + case 34: + { + param = TONEX_PARAM_MODULATION_CHORUS_SYNC; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 35: + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[TONEX_PARAM_MODULATION_CHORUS_SYNC].Value == 0.00f) + { + param = TONEX_PARAM_MODULATION_CHORUS_RATE; + + // release mutex as next functions need it + tonex_params_release_locked_access(); + + // scale the value to the time range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } + else + { + param = TONEX_PARAM_MODULATION_CHORUS_TS; + + // release mutex as next functions need it + tonex_params_release_locked_access(); + + // set the time sign + value = (float)midi_value; + value = tonex_params_clamp_value(param, value); + } + } + else + { + // failed to get access to params + return ESP_FAIL; + } + } break; + + case 36: + { + param = TONEX_PARAM_MODULATION_CHORUS_DEPTH; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 37: + { + param = TONEX_PARAM_MODULATION_CHORUS_LEVEL; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 38: + { + param = TONEX_PARAM_MODULATION_TREMOLO_SYNC; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 39: + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[TONEX_PARAM_MODULATION_TREMOLO_SYNC].Value == 0.00f) + { + param = TONEX_PARAM_MODULATION_TREMOLO_RATE; + + // release mutex as next functions need it + tonex_params_release_locked_access(); + + // scale the value to the time range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } + else + { + param = TONEX_PARAM_MODULATION_TREMOLO_TS; + + // release mutex as next functions need it + tonex_params_release_locked_access(); + + // set the time sign + value = (float)midi_value; + value = tonex_params_clamp_value(param, value); + } + } + else + { + // failed to get access to params + return ESP_FAIL; + } + } break; + + case 40: + { + param = TONEX_PARAM_MODULATION_TREMOLO_SHAPE; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 41: + { + param = TONEX_PARAM_MODULATION_TREMOLO_SPREAD; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 42: + { + param = TONEX_PARAM_MODULATION_TREMOLO_LEVEL; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 43: + { + param = TONEX_PARAM_MODULATION_PHASER_SYNC; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 44: + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[TONEX_PARAM_MODULATION_PHASER_SYNC].Value == 0.00f) + { + param = TONEX_PARAM_MODULATION_PHASER_RATE; + + // release mutex as next functions need it + tonex_params_release_locked_access(); + + // scale the value to the time range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } + else + { + param = TONEX_PARAM_MODULATION_PHASER_TS; + + // release mutex as next functions need it + tonex_params_release_locked_access(); + + // set the time sign + value = (float)midi_value; + value = tonex_params_clamp_value(param, value); + } + } + else + { + // failed to get access to params + return ESP_FAIL; + } + } break; + + case 45: + { + param = TONEX_PARAM_MODULATION_PHASER_DEPTH; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 46: + { + param = TONEX_PARAM_MODULATION_PHASER_LEVEL; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 47: + { + param = TONEX_PARAM_MODULATION_FLANGER_SYNC; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 48: + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[TONEX_PARAM_MODULATION_FLANGER_SYNC].Value == 0.00f) + { + param = TONEX_PARAM_MODULATION_FLANGER_RATE; + + // release mutex as next functions need it + tonex_params_release_locked_access(); + + // scale the value to the time range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } + else + { + param = TONEX_PARAM_MODULATION_FLANGER_TS; + + // release mutex as next functions need it + tonex_params_release_locked_access(); + + // set the time sign + value = (float)midi_value; + value = tonex_params_clamp_value(param, value); + } + } + else + { + // failed to get access to params + return ESP_FAIL; + } + } break; + + case 49: + { + param = TONEX_PARAM_MODULATION_FLANGER_DEPTH; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 50: + { + param = TONEX_PARAM_MODULATION_FLANGER_FEEDBACK; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 51: + { + param = TONEX_PARAM_MODULATION_FLANGER_LEVEL; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 52: + { + param = TONEX_PARAM_MODULATION_ROTARY_SYNC; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 53: + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[TONEX_PARAM_MODULATION_ROTARY_SYNC].Value == 0.00f) + { + param = TONEX_PARAM_MODULATION_ROTARY_SPEED; + + // release mutex as next functions need it + tonex_params_release_locked_access(); + + // scale the value to the time range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } + else + { + param = TONEX_PARAM_MODULATION_ROTARY_TS; + + // release mutex as next functions need it + tonex_params_release_locked_access(); + + // set the time sign + value = (float)midi_value; + value = tonex_params_clamp_value(param, value); + } + } + else + { + // failed to get access to params + return ESP_FAIL; + } + } break; + + case 54: + { + param = TONEX_PARAM_MODULATION_ROTARY_RADIUS; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 55: + { + param = TONEX_PARAM_MODULATION_ROTARY_SPREAD; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 56: + { + param = TONEX_PARAM_MODULATION_ROTARY_LEVEL; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + // 57 - 58 not used + + case 59: + { + param = TONEX_PARAM_REVERB_SPRING1_TIME; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 60: + { + param = TONEX_PARAM_REVERB_SPRING1_PREDELAY; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 61: + { + param = TONEX_PARAM_REVERB_SPRING1_COLOR; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 62: + { + param = TONEX_PARAM_REVERB_SPRING1_MIX; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 63: + { + param = TONEX_PARAM_REVERB_SPRING2_TIME; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 64: + { + param = TONEX_PARAM_REVERB_SPRING2_PREDELAY; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 65: + { + param = TONEX_PARAM_REVERB_SPRING2_COLOR; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 66: + { + param = TONEX_PARAM_REVERB_SPRING2_MIX; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 67: + { + param = TONEX_PARAM_REVERB_SPRING3_TIME; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 68: + { + param = TONEX_PARAM_REVERB_SPRING3_PREDELAY; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 69: + { + param = TONEX_PARAM_REVERB_SPRING3_COLOR; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 70: + { + param = TONEX_PARAM_REVERB_SPRING3_MIX; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 71: + { + param = TONEX_PARAM_REVERB_ROOM_TIME; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 72: + { + param = TONEX_PARAM_REVERB_ROOM_PREDELAY; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 73: + { + param = TONEX_PARAM_REVERB_ROOM_COLOR; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 74: + { + param = TONEX_PARAM_REVERB_ROOM_MIX; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 75: + { + param = TONEX_PARAM_REVERB_ENABLE; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 76: + { + param = TONEX_PARAM_REVERB_PLATE_TIME; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 77: + { + param = TONEX_PARAM_REVERB_PLATE_PREDELAY; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 78: + { + param = TONEX_PARAM_REVERB_PLATE_COLOR; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 79: + { + param = TONEX_PARAM_REVERB_PLATE_MIX; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 80: + { + param = TONEX_PARAM_REVERB_SPRING4_TIME; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 81: + { + param = TONEX_PARAM_REVERB_SPRING4_PREDELAY; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 82: + { + param = TONEX_PARAM_REVERB_SPRING4_COLOR; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 83: + { + param = TONEX_PARAM_REVERB_SPRING4_MIX; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 84: + { + param = TONEX_PARAM_REVERB_POSITION; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 85: + { + param = TONEX_PARAM_REVERB_MODEL; + value = (float)midi_value; + value = tonex_params_clamp_value(param, value); + } break; + + case 86: + { + //preset down + control_request_preset_down(); + + // no param change needed + return ESP_OK; + } break; + + case 87: + { + //preset up + control_request_preset_up(); + + // no param change needed + return ESP_OK; + } break; + + case 88: + { + // bpm + param = TONEX_GLOBAL_BPM; + value = midi_helper_scale_midi_to_float(param, midi_value); + } break; + + // 89: bank down + // 90: bank up + + case 91: + { + param = TONEX_PARAM_DELAY_TAPE_SYNC; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 92: + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[TONEX_PARAM_DELAY_TAPE_SYNC].Value == 0.00f) + { + param = TONEX_PARAM_DELAY_TAPE_TIME; + + // release mutex as next functions need it + tonex_params_release_locked_access(); + + // scale the value to the time range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } + else + { + param = TONEX_PARAM_DELAY_TAPE_TS; + + // release mutex as next functions need it + tonex_params_release_locked_access(); + + // set the time sign + value = (float)midi_value; + value = tonex_params_clamp_value(param, value); + } + } + else + { + // failed to get access to params + return ESP_FAIL; + } + } break; + + case 93: + { + param = TONEX_PARAM_DELAY_TAPE_FEEDBACK; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 94: + { + param = TONEX_PARAM_DELAY_TAPE_MODE; + if (midi_value == 64) + { + value = 1.0f; + } + else + { + value = 0.0f; + } + value = tonex_params_clamp_value(param, value); + } break; + + case 95: + { + param = TONEX_PARAM_DELAY_TAPE_MIX; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + // 96 to 101 not used + + case 99: + { + // bpm + param = TONEX_GLOBAL_BPM; + value = (midi_value < 40) ? 40 : midi_value; + } break; + + case 100: + { + // bpm + param = TONEX_GLOBAL_BPM; + value = midi_value+100; + } break; + + case 102: + { + param = TONEX_PARAM_MODEL_GAIN; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 103: + { + param = TONEX_PARAM_MODEL_VOLUME; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 104: + { + param = TONEX_PARAM_MODEX_MIX; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + // 105 not used + + case 106: + { + param = TONEX_PARAM_MODEL_PRESENCE; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 107: + { + param = TONEX_PARAM_MODEL_DEPTH; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 108: + { + param = TONEX_PARAM_VIR_RESO; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 109: + { + param = TONEX_PARAM_VIR_MIC_1; + value = (float)midi_value; + value = tonex_params_clamp_value(param, value); + } break; + + case 110: + { + param = TONEX_PARAM_VIR_MIC_1_X; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 111: + { + param = TONEX_PARAM_VIR_MIC_1_Z; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 112: + { + param = TONEX_PARAM_VIR_MIC_2; + value = (float)midi_value; + value = tonex_params_clamp_value(param, value); + } break; + + case 113: + { + param = TONEX_PARAM_VIR_MIC_2_X; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 114: + { + param = TONEX_PARAM_VIR_MIC_2_Z; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 115: + { + param = TONEX_PARAM_VIR_BLEND; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + // below items not supported on bigger Tonex pedal, custom for this controller + case 116: + { + // input trim + param = TONEX_GLOBAL_INPUT_TRIM; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 117: + { + param = TONEX_GLOBAL_CABSIM_BYPASS; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 118: + { + param = TONEX_GLOBAL_TEMPO_SOURCE; + + // check for toggling + if (!midi_helper_tonex_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = tonex_params_clamp_value(param, value); + } + } break; + + case 119: + { + param = TONEX_GLOBAL_TUNING_REFERENCE; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 120: + { + // Load preset to Slot A without switching to it + if (midi_value >= (usb_get_max_presets_for_connected_modeller())) + { + ESP_LOGW(TAG, "Unsupported Midi CC 120 value %d (max %d)", midi_value, usb_get_max_presets_for_connected_modeller() - 1); + } + else + { + usb_load_preset_to_slot_a(midi_value); + } + + // no param change needed + return ESP_OK; + } break; + + case 121: + { + // Load preset to Slot B without switching to it + if (midi_value >= (usb_get_max_presets_for_connected_modeller())) + { + ESP_LOGW(TAG, "Unsupported Midi CC 121 value %d (max %d)", midi_value, usb_get_max_presets_for_connected_modeller() - 1); + } + else + { + usb_load_preset_to_slot_b(midi_value); + } + + // no param change needed + return ESP_OK; + } break; + + case 122: + { + param = TONEX_GLOBAL_MASTER_VOLUME; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = tonex_params_clamp_value(param, value); + } break; + + case 127: + { + // Custom case: use CC to change params. + if (midi_value >= (usb_get_max_presets_for_connected_modeller())) + { + ESP_LOGW(TAG, "Unsupported Midi CC 127 value %d", midi_value); + } + else + { + control_request_preset_index(midi_value); + } + + // no param change needed + return ESP_OK; + } break; + + default: + { + ESP_LOGW(TAG, "Unsupported Midi change number %d", change_num); + return ESP_FAIL; + } break; + } + + // modify the parameter + usb_modify_parameter(param, value); + + return ESP_OK; +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +uint16_t midi_helper_tonex_get_param_for_change_num(uint8_t change_num, uint8_t midi_value_1, uint8_t midi_value_2) +{ + uint16_t param = TONEX_UNKNOWN; + tModellerParameter* param_ptr; + + // Midi mapping done to match the big Tonex pedal + switch (change_num) + { + // 0: midi patch bank on big tonex + + case 1: + { + param = TONEX_PARAM_DELAY_POST; + } break; + + case 2: + { + param = TONEX_PARAM_DELAY_ENABLE; + } break; + + case 3: + { + param = TONEX_PARAM_DELAY_MODEL; + } break; + + case 4: + { + param = TONEX_PARAM_DELAY_DIGITAL_SYNC; + } break; + + case 5: + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[TONEX_PARAM_DELAY_DIGITAL_SYNC].Value == 0.00f) + { + param = TONEX_PARAM_DELAY_DIGITAL_TIME; + } + else + { + param = TONEX_PARAM_DELAY_DIGITAL_TS; + } + + // release mutex + tonex_params_release_locked_access(); + } + } break; + + case 6: + { + param = TONEX_PARAM_DELAY_DIGITAL_FEEDBACK; + } break; + + case 7: + { + param = TONEX_PARAM_DELAY_DIGITAL_MODE; + } break; + + case 8: + { + param = TONEX_PARAM_DELAY_DIGITAL_MIX; + } break; + + // 9 tuner + + case 10: + { + // BPM + param = TONEX_GLOBAL_BPM; + } break; + + // 11: expression pedal + + case 12: + { + // preset on/off + param = TONEX_GLOBAL_BYPASS; + } break; + + case 13: + { + param = TONEX_PARAM_NOISE_GATE_POST; + } break; + + case 14: + { + param = TONEX_PARAM_NOISE_GATE_ENABLE; + } break; + + case 15: + { + param = TONEX_PARAM_NOISE_GATE_THRESHOLD; + } break; + + case 16: + { + param = TONEX_PARAM_NOISE_GATE_RELEASE; + } break; + + case 17: + { + param = TONEX_PARAM_NOISE_GATE_DEPTH; + } break; + + case 18: + { + param = TONEX_PARAM_COMP_ENABLE; + } break; + + case 19: + { + param = TONEX_PARAM_COMP_THRESHOLD; + } break; + + case 20: + { + param = TONEX_PARAM_COMP_MAKE_UP; + } break; + + case 21: + { + param = TONEX_PARAM_COMP_ATTACK; + } break; + + case 22: + { + param = TONEX_PARAM_COMP_POST; + } break; + + case 23: + { + param = TONEX_PARAM_EQ_BASS; + } break; + + case 24: + { + param = TONEX_PARAM_EQ_BASS_FREQ; + } break; + + case 25: + { + param = TONEX_PARAM_EQ_MID; + } break; + + case 26: + { + param = TONEX_PARAM_EQ_MIDQ; + } break; + + case 27: + { + param = TONEX_PARAM_EQ_MID_FREQ; + } break; + + case 28: + { + param = TONEX_PARAM_EQ_TREBLE; + } break; + + case 29: + { + param = TONEX_PARAM_EQ_TREBLE_FREQ; + } break; + + case 30: + { + param = TONEX_PARAM_EQ_POST; + } break; + + case 31: + { + param = TONEX_PARAM_MODULATION_POST; + } break; + + case 32: + { + param = TONEX_PARAM_MODULATION_ENABLE; + } break; + + case 33: + { + param = TONEX_PARAM_MODULATION_MODEL; + } break; + + case 34: + { + param = TONEX_PARAM_MODULATION_CHORUS_SYNC; + } break; + + case 35: + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[TONEX_PARAM_MODULATION_CHORUS_SYNC].Value == 0.00f) + { + param = TONEX_PARAM_MODULATION_CHORUS_RATE; + } + else + { + param = TONEX_PARAM_MODULATION_CHORUS_TS; + } + + // release mutex + tonex_params_release_locked_access(); + } + } break; + + case 36: + { + param = TONEX_PARAM_MODULATION_CHORUS_DEPTH; + } break; + + case 37: + { + param = TONEX_PARAM_MODULATION_CHORUS_LEVEL; + } break; + + case 38: + { + param = TONEX_PARAM_MODULATION_TREMOLO_SYNC; + } break; + + case 39: + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[TONEX_PARAM_MODULATION_TREMOLO_SYNC].Value == 0.00f) + { + param = TONEX_PARAM_MODULATION_TREMOLO_RATE; + } + else + { + param = TONEX_PARAM_MODULATION_TREMOLO_TS; + } + + // release mutex + tonex_params_release_locked_access(); + } + } break; + + case 40: + { + param = TONEX_PARAM_MODULATION_TREMOLO_SHAPE; + } break; + + case 41: + { + param = TONEX_PARAM_MODULATION_TREMOLO_SPREAD; + } break; + + case 42: + { + param = TONEX_PARAM_MODULATION_TREMOLO_LEVEL; + } break; + + case 43: + { + param = TONEX_PARAM_MODULATION_PHASER_SYNC; + } break; + + case 44: + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[TONEX_PARAM_MODULATION_PHASER_SYNC].Value == 0.00f) + { + param = TONEX_PARAM_MODULATION_PHASER_RATE; + } + else + { + param = TONEX_PARAM_MODULATION_PHASER_TS; + } + + // release mutex + tonex_params_release_locked_access(); + } + } break; + + case 45: + { + param = TONEX_PARAM_MODULATION_PHASER_DEPTH; + } break; + + case 46: + { + param = TONEX_PARAM_MODULATION_PHASER_LEVEL; + } break; + + case 47: + { + param = TONEX_PARAM_MODULATION_FLANGER_SYNC; + } break; + + case 48: + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[TONEX_PARAM_MODULATION_FLANGER_SYNC].Value == 0.00f) + { + param = TONEX_PARAM_MODULATION_FLANGER_RATE; + } + else + { + param = TONEX_PARAM_MODULATION_FLANGER_TS; + } + + // release mutex + tonex_params_release_locked_access(); + } + } break; + + case 49: + { + param = TONEX_PARAM_MODULATION_FLANGER_DEPTH; + } break; + + case 50: + { + param = TONEX_PARAM_MODULATION_FLANGER_FEEDBACK; + } break; + + case 51: + { + param = TONEX_PARAM_MODULATION_FLANGER_LEVEL; + } break; + + case 52: + { + param = TONEX_PARAM_MODULATION_ROTARY_SYNC; + } break; + + case 53: + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[TONEX_PARAM_MODULATION_ROTARY_SYNC].Value == 0.00f) + { + param = TONEX_PARAM_MODULATION_ROTARY_SPEED; + } + else + { + param = TONEX_PARAM_MODULATION_ROTARY_TS; + } + + // release mutex + tonex_params_release_locked_access(); + } + } break; + + case 54: + { + param = TONEX_PARAM_MODULATION_ROTARY_RADIUS; + } break; + + case 55: + { + param = TONEX_PARAM_MODULATION_ROTARY_SPREAD; + } break; + + case 56: + { + param = TONEX_PARAM_MODULATION_ROTARY_LEVEL; + } break; + + // 57 - 58 not used + + case 59: + { + param = TONEX_PARAM_REVERB_SPRING1_TIME; + } break; + + case 60: + { + param = TONEX_PARAM_REVERB_SPRING1_PREDELAY; + } break; + + case 61: + { + param = TONEX_PARAM_REVERB_SPRING1_COLOR; + } break; + + case 62: + { + param = TONEX_PARAM_REVERB_SPRING1_MIX; + } break; + + case 63: + { + param = TONEX_PARAM_REVERB_SPRING2_TIME; + } break; + + case 64: + { + param = TONEX_PARAM_REVERB_SPRING2_PREDELAY; + } break; + + case 65: + { + param = TONEX_PARAM_REVERB_SPRING2_COLOR; + } break; + + case 66: + { + param = TONEX_PARAM_REVERB_SPRING2_MIX; + } break; + + case 67: + { + param = TONEX_PARAM_REVERB_SPRING3_TIME; + } break; + + case 68: + { + param = TONEX_PARAM_REVERB_SPRING3_PREDELAY; + } break; + + case 69: + { + param = TONEX_PARAM_REVERB_SPRING3_COLOR; + } break; + + case 70: + { + param = TONEX_PARAM_REVERB_SPRING3_MIX; + } break; + + case 71: + { + param = TONEX_PARAM_REVERB_ROOM_TIME; + } break; + + case 72: + { + param = TONEX_PARAM_REVERB_ROOM_PREDELAY; + } break; + + case 73: + { + param = TONEX_PARAM_REVERB_ROOM_COLOR; + } break; + + case 74: + { + param = TONEX_PARAM_REVERB_ROOM_MIX; + } break; + + case 75: + { + param = TONEX_PARAM_REVERB_ENABLE; + } break; + + case 76: + { + param = TONEX_PARAM_REVERB_PLATE_TIME; + } break; + + case 77: + { + param = TONEX_PARAM_REVERB_PLATE_PREDELAY; + } break; + + case 78: + { + param = TONEX_PARAM_REVERB_PLATE_COLOR; + } break; + + case 79: + { + param = TONEX_PARAM_REVERB_PLATE_MIX; + } break; + + case 80: + { + param = TONEX_PARAM_REVERB_SPRING4_TIME; + } break; + + case 81: + { + param = TONEX_PARAM_REVERB_SPRING4_PREDELAY; + } break; + + case 82: + { + param = TONEX_PARAM_REVERB_SPRING4_COLOR; + } break; + + case 83: + { + param = TONEX_PARAM_REVERB_SPRING4_MIX; + } break; + + case 84: + { + param = TONEX_PARAM_REVERB_POSITION; + } break; + + case 85: + { + param = TONEX_PARAM_REVERB_MODEL; + } break; + + case 86: + { + // preset down + control_request_preset_down(); + + // don't set any return param, as this one is already handled and its not a parameter + } break; + + case 87: + { + //preset up + control_request_preset_up(); + + // don't set any return param, as this one is already handled and its not a parameter + } break; + + case 88: + { + //bpm + param = TONEX_GLOBAL_BPM; + } break; + + // 89: bank down + // 90: bank up + + case 91: + { + param = TONEX_PARAM_DELAY_TAPE_SYNC; + } break; + + case 92: + { + // take mutex + if (tonex_params_get_locked_access(¶m_ptr) == ESP_OK) + { + if (param_ptr[TONEX_PARAM_DELAY_TAPE_SYNC].Value == 0.00f) + { + param = TONEX_PARAM_DELAY_TAPE_TIME; + } + else + { + param = TONEX_PARAM_DELAY_TAPE_TS; + } + + // release mutex + tonex_params_release_locked_access(); + } + } break; + + case 93: + { + param = TONEX_PARAM_DELAY_TAPE_FEEDBACK; + } break; + + case 94: + { + param = TONEX_PARAM_DELAY_TAPE_MODE; + } break; + + case 95: + { + param = TONEX_PARAM_DELAY_TAPE_MIX; + } break; + + // 96 to 101 not used + + case 102: + { + param = TONEX_PARAM_MODEL_GAIN; + } break; + + case 103: + { + param = TONEX_PARAM_MODEL_VOLUME; + } break; + + case 104: + { + param = TONEX_PARAM_MODEX_MIX; + } break; + + // 105 not used + + case 106: + { + param = TONEX_PARAM_MODEL_PRESENCE; + } break; + + case 107: + { + param = TONEX_PARAM_MODEL_DEPTH; + } break; + + case 108: + { + param = TONEX_PARAM_VIR_RESO; + } break; + + case 109: + { + param = TONEX_PARAM_VIR_MIC_1; + } break; + + case 110: + { + param = TONEX_PARAM_VIR_MIC_1_X; + } break; + + case 111: + { + param = TONEX_PARAM_VIR_MIC_1_Z; + } break; + + case 112: + { + param = TONEX_PARAM_VIR_MIC_2; + } break; + + case 113: + { + param = TONEX_PARAM_VIR_MIC_2_X; + } break; + + case 114: + { + param = TONEX_PARAM_VIR_MIC_2_Z; + } break; + + case 115: + { + param = TONEX_PARAM_VIR_BLEND; + } break; + + // below items not supported on bigger Tonex pedal, custom for this controller + case 116: + { + param = TONEX_GLOBAL_INPUT_TRIM; + } break; + + case 117: + { + param = TONEX_GLOBAL_CABSIM_BYPASS; + } break; + + case 118: + { + param = TONEX_GLOBAL_TEMPO_SOURCE; + } break; + + case 119: + { + param = TONEX_GLOBAL_TUNING_REFERENCE; + } break; + + case 120: + { + // reserved for setting preset in slot A + } break; + + case 121: + { + // reserved for setting preset in slot B + } break; + + case 122: + { + param = TONEX_GLOBAL_MASTER_VOLUME; + } break; + + case 127: + { + uint32_t new_preset; + uint32_t current_preset = control_get_current_preset_index(); + + if (current_preset == midi_value_1) + { + // select midi value 2 + new_preset = midi_value_2; + } + else + { + // select midi value 1 + new_preset = midi_value_1; + } + + if (new_preset >= (usb_get_max_presets_for_connected_modeller())) + { + ESP_LOGW(TAG, "Unsupported Midi CC 127 value %d", new_preset); + } + else + { + control_request_preset_index(new_preset); + } + + // don't set any return param, as this one is already handled and its not a parameter + } + } + + return param; +} diff --git a/source/main/midi_helper_tonex.h b/source/main/midi_helper_tonex.h new file mode 100644 index 00000000..8aa16705 --- /dev/null +++ b/source/main/midi_helper_tonex.h @@ -0,0 +1,21 @@ +/* + Copyright (C) 2025 Greg Smith + +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. + +*/ + +#pragma once + +esp_err_t midi_helper_tonex_adjust_param_via_midi(uint8_t change_num, uint8_t midi_value); +uint16_t midi_helper_tonex_get_param_for_change_num(uint8_t change_num, uint8_t midi_value_1, uint8_t midi_value_2); diff --git a/source/main/midi_helper_valeton.c b/source/main/midi_helper_valeton.c new file mode 100644 index 00000000..3e52f707 --- /dev/null +++ b/source/main/midi_helper_valeton.c @@ -0,0 +1,1227 @@ +/* + Copyright (C) 2025 Greg Smith + +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. + +*/ + + +#include +#include +#include +#include "sdkconfig.h" +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "freertos/semphr.h" +#include "esp_check.h" +#include "esp_log.h" +#include "usb/usb_host.h" +#include "driver/i2c.h" +#include "nvs_flash.h" +#include "esp_vfs.h" +#include "esp_vfs_fat.h" +#include "esp_ota_ops.h" +#include "sys/param.h" +#include "control.h" +#include "usb_comms.h" +#include "usb/usb_host.h" +#include "usb_tonex_one.h" +#include "valeton_params.h" +#include "midi_helper.h" +#include "midi_helper_valeton.h" + +static const char *TAG = "app_midi_helper_valeton"; + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +static uint8_t midi_helper_valeton_boolean_midi_toggle(uint16_t param, uint8_t midi_value, float* value) +{ + tModellerParameter* param_ptr; + + if (midi_value == MIDI_BOOL_TOGGLE) + { + // take mutex + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + // toggle current state + if (param_ptr[param].Value == 0.0f) + { + *value = 1.0f; + } + else + { + *value = 0.0f; + } + + // release mutex + valeton_params_release_locked_access(); + } + + // toggling + return 1; + } + + // not toggling + return 0; +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +esp_err_t midi_helper_valeton_adjust_param_via_midi(uint8_t change_num, uint8_t midi_value) +{ + uint16_t param = 0; + float value = 0.0f; + tModellerParameter* param_ptr; + + // Midi mapping done to match the big Tonex pedal + switch (change_num) + { + case 0: + { + param = VALETON_PARAM_NR_ENABLE; + + // check for toggling + if (!midi_helper_valeton_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = valeton_params_clamp_value(param, value); + } + } break; + + case 1: + { + param = VALETON_PARAM_PRE_ENABLE; + + // check for toggling + if (!midi_helper_valeton_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = valeton_params_clamp_value(param, value); + } + } break; + + case 2: + { + param = VALETON_PARAM_DIST_ENABLE; + + // check for toggling + if (!midi_helper_valeton_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = valeton_params_clamp_value(param, value); + } + } break; + + case 3: + { + param = VALETON_PARAM_AMP_ENABLE; + + // check for toggling + if (!midi_helper_valeton_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = valeton_params_clamp_value(param, value); + } + } break; + + case 4: + { + param = VALETON_PARAM_CAB_ENABLE; + + // check for toggling + if (!midi_helper_valeton_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = valeton_params_clamp_value(param, value); + } + } break; + + case 5: + { + param = VALETON_PARAM_EQ_ENABLE; + + // check for toggling + if (!midi_helper_valeton_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = valeton_params_clamp_value(param, value); + } + } break; + + case 6: + { + param = VALETON_PARAM_MOD_ENABLE; + + // check for toggling + if (!midi_helper_valeton_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = valeton_params_clamp_value(param, value); + } + } break; + + case 7: + { + param = VALETON_PARAM_DLY_ENABLE; + + // check for toggling + if (!midi_helper_valeton_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = valeton_params_clamp_value(param, value); + } + } break; + + case 8: + { + param = VALETON_PARAM_RVB_ENABLE; + + // check for toggling + if (!midi_helper_valeton_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = valeton_params_clamp_value(param, value); + } + } break; + + case 9: + { + param = VALETON_PARAM_NS_ENABLE; + + // check for toggling + if (!midi_helper_valeton_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = valeton_params_clamp_value(param, value); + } + } break; + + case 10: + { + param = VALETON_PARAM_NR_TYPE; + value = (float)midi_value; + value = valeton_params_clamp_value(param, value); + } break; + + case 11: + { + param = VALETON_PARAM_PRE_TYPE; + value = (float)midi_value; + value = valeton_params_clamp_value(param, value); + } break; + + case 12: + { + param = VALETON_PARAM_DIST_TYPE; + value = (float)midi_value; + value = valeton_params_clamp_value(param, value); + } break; + + case 13: + { + param = VALETON_PARAM_AMP_TYPE; + value = (float)midi_value; + value = valeton_params_clamp_value(param, value); + } break; + + case 14: + { + param = VALETON_PARAM_CAB_TYPE; + value = (float)midi_value; + value = valeton_params_clamp_value(param, value); + } break; + + case 15: + { + param = VALETON_PARAM_EQ_TYPE; + value = (float)midi_value; + value = valeton_params_clamp_value(param, value); + } break; + + case 16: + { + param = VALETON_PARAM_MOD_TYPE; + value = (float)midi_value; + value = valeton_params_clamp_value(param, value); + } break; + + case 17: + { + param = VALETON_PARAM_DLY_TYPE; + value = (float)midi_value; + value = valeton_params_clamp_value(param, value); + } break; + + case 18: + { + param = VALETON_PARAM_RVB_TYPE; + value = (float)midi_value; + value = valeton_params_clamp_value(param, value); + } break; + + case 19: + { + param = VALETON_PARAM_NS_TYPE; + value = (float)midi_value; + value = valeton_params_clamp_value(param, value); + } break; + + case 20: + { + param = VALETON_PARAM_PATCH_VOLUME; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 21: + { + param = VALETON_PARAM_NR_PARAM_0; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 23: + { + param = VALETON_PARAM_NR_PARAM_1; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 24: + { + param = VALETON_PARAM_NR_PARAM_2; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 25: + { + param = VALETON_PARAM_NR_PARAM_3; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 26: + { + param = VALETON_PARAM_NR_PARAM_4; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 27: + { + param = VALETON_PARAM_NR_PARAM_5; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 28: + { + param = VALETON_PARAM_NR_PARAM_6; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 29: + { + param = VALETON_PARAM_NR_PARAM_7; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 30: + { + param = VALETON_PARAM_PRE_PARAM_0; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 31: + { + param = VALETON_PARAM_PRE_PARAM_1; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 32: + { + param = VALETON_PARAM_PRE_PARAM_2; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 33: + { + param = VALETON_PARAM_PRE_PARAM_3; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 34: + { + param = VALETON_PARAM_PRE_PARAM_4; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 35: + { + param = VALETON_PARAM_PRE_PARAM_5; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 36: + { + param = VALETON_PARAM_PRE_PARAM_6; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 37: + { + param = VALETON_PARAM_PRE_PARAM_7; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 38: + { + param = VALETON_PARAM_DIST_PARAM_0; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 39: + { + param = VALETON_PARAM_DIST_PARAM_1; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 40: + { + param = VALETON_PARAM_DIST_PARAM_2; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 41: + { + param = VALETON_PARAM_DIST_PARAM_3; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 42: + { + param = VALETON_PARAM_DIST_PARAM_4; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 43: + { + param = VALETON_PARAM_DIST_PARAM_5; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 44: + { + param = VALETON_PARAM_DIST_PARAM_6; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 45: + { + param = VALETON_PARAM_DIST_PARAM_7; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 46: + { + param = VALETON_PARAM_AMP_PARAM_0; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 47: + { + param = VALETON_PARAM_AMP_PARAM_1; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 48: + { + param = VALETON_PARAM_AMP_PARAM_2; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 49: + { + param = VALETON_PARAM_AMP_PARAM_3; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 50: + { + param = VALETON_PARAM_AMP_PARAM_4; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 51: + { + param = VALETON_PARAM_AMP_PARAM_5; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 52: + { + param = VALETON_PARAM_AMP_PARAM_6; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 53: + { + param = VALETON_PARAM_AMP_PARAM_7; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 54: + { + param = VALETON_PARAM_CAB_PARAM_0; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 55: + { + param = VALETON_PARAM_CAB_PARAM_1; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 56: + { + param = VALETON_PARAM_CAB_PARAM_2; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 57: + { + param = VALETON_PARAM_CAB_PARAM_3; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 58: + { + param = VALETON_PARAM_CAB_PARAM_4; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 59: + { + param = VALETON_PARAM_CAB_PARAM_5; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 60: + { + param = VALETON_PARAM_CAB_PARAM_6; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 61: + { + param = VALETON_PARAM_CAB_PARAM_7; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 62: + { + param = VALETON_PARAM_EQ_PARAM_0; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 63: + { + param = VALETON_PARAM_EQ_PARAM_1; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 64: + { + param = VALETON_PARAM_EQ_PARAM_2; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 65: + { + param = VALETON_PARAM_EQ_PARAM_3; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 66: + { + param = VALETON_PARAM_EQ_PARAM_4; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 67: + { + param = VALETON_PARAM_EQ_PARAM_5; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 68: + { + param = VALETON_PARAM_EQ_PARAM_6; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 69: + { + param = VALETON_PARAM_EQ_PARAM_7; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 70: + { + param = VALETON_PARAM_MOD_PARAM_0; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 71: + { + param = VALETON_PARAM_MOD_PARAM_1; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 72: + { + param = VALETON_PARAM_MOD_PARAM_2; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 73: + { + param = VALETON_PARAM_MOD_PARAM_3; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 74: + { + param = VALETON_PARAM_MOD_PARAM_4; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 75: + { + param = VALETON_PARAM_MOD_PARAM_5; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 76: + { + param = VALETON_PARAM_MOD_PARAM_6; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 77: + { + param = VALETON_PARAM_MOD_PARAM_7; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 78: + { + param = VALETON_PARAM_DLY_PARAM_0; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 79: + { + param = VALETON_PARAM_DLY_PARAM_1; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 80: + { + param = VALETON_PARAM_DLY_PARAM_2; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 81: + { + param = VALETON_PARAM_DLY_PARAM_3; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 82: + { + param = VALETON_PARAM_DLY_PARAM_4; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 83: + { + param = VALETON_PARAM_DLY_PARAM_5; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 84: + { + param = VALETON_PARAM_DLY_PARAM_6; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 85: + { + param = VALETON_PARAM_DLY_PARAM_7; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 86: + { + param = VALETON_PARAM_RVB_PARAM_0; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 87: + { + param = VALETON_PARAM_RVB_PARAM_1; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 88: + { + param = VALETON_PARAM_RVB_PARAM_2; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 89: + { + param = VALETON_PARAM_RVB_PARAM_3; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 90: + { + param = VALETON_PARAM_RVB_PARAM_4; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 91: + { + param = VALETON_PARAM_RVB_PARAM_5; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 92: + { + param = VALETON_PARAM_RVB_PARAM_6; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 93: + { + param = VALETON_PARAM_RVB_PARAM_7; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 94: + { + param = VALETON_PARAM_NS_PARAM_0; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 95: + { + param = VALETON_PARAM_NS_PARAM_1; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 96: + { + param = VALETON_PARAM_NS_PARAM_2; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 97: + { + param = VALETON_PARAM_NS_PARAM_3; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 98: + { + param = VALETON_PARAM_NS_PARAM_4; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 99: + { + param = VALETON_PARAM_NS_PARAM_5; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 100: + { + param = VALETON_PARAM_NS_PARAM_6; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 101: + { + param = VALETON_PARAM_NS_PARAM_7; + + // scale the value to the range + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + // gap for expansion + + case 116: + { + //preset down + control_request_preset_down(); + + // no param change needed + return ESP_OK; + } break; + + case 117: + { + //preset up + control_request_preset_up(); + + // no param change needed + return ESP_OK; + } break; + + case 118: + { + // bpm + param = VALETON_GLOBAL_BPM; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 119: + { + //tap tempo + control_trigger_tap_tempo(); + + // no param change needed + return ESP_OK; + } break; + + case 120: + { + // input trim + param = VALETON_GLOBAL_INPUT_TRIM; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 121: + { + param = VALETON_GLOBAL_CABSIM_BYPASS; + + // check for toggling + if (!midi_helper_valeton_boolean_midi_toggle(param, midi_value, &value)) + { + value = midi_helper_boolean_midi_to_float(midi_value); + value = valeton_params_clamp_value(param, value); + } + } break; + + case 122: + { + param = VALETON_GLOBAL_MASTER_VOLUME; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 123: + { + param = VALETON_GLOBAL_RECORD_LEVEL; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 124: + { + param = VALETON_GLOBAL_MONITOR_LEVEL; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + case 125: + { + param = VALETON_GLOBAL_BT_LEVEL; + value = midi_helper_scale_midi_to_float(param, midi_value); + value = valeton_params_clamp_value(param, value); + } break; + + //126 + + case 127: + { + // set preset + if (midi_value >= (usb_get_max_presets_for_connected_modeller())) + { + ESP_LOGW(TAG, "Unsupported Midi CC 127 value %d", midi_value); + } + else + { + control_request_preset_index(midi_value); + } + + // no param change needed + return ESP_OK; + } break; + + default: + { + ESP_LOGW(TAG, "Unsupported Midi change number %d", change_num); + return ESP_FAIL; + } break; + } + + // modify the parameter + usb_modify_parameter(param, value); + + return ESP_OK; +} + +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +uint16_t midi_helper_valeton_get_param_for_change_num(uint8_t change_num, uint8_t midi_value_1, uint8_t midi_value_2) +{ + uint16_t param = 0; //TONEX_UNKNOWN; + tModellerParameter* param_ptr; + + switch (change_num) + { + case 0: + { + //todo param = VALETON_PARAM_NR_ENABLE; + } break; + + case 1: + { + //todo param = VALETON_PARAM_NR_ENABLE; + } break; + + case 2: + { + } break; + + + case 116: + { + param = VALETON_GLOBAL_INPUT_TRIM; + } break; + + case 117: + { + param = VALETON_GLOBAL_CABSIM_BYPASS; + } break; + + case 118: + { + } break; + + case 119: + { + + } break; + + case 120: + { + + } break; + + case 121: + { + + } break; + + case 122: + { + param = VALETON_GLOBAL_MASTER_VOLUME; + } break; + + case 127: + { + uint32_t new_preset; + uint32_t current_preset = control_get_current_preset_index(); + + if (current_preset == midi_value_1) + { + // select midi value 2 + new_preset = midi_value_2; + } + else + { + // select midi value 1 + new_preset = midi_value_1; + } + + if (new_preset >= (usb_get_max_presets_for_connected_modeller())) + { + ESP_LOGW(TAG, "Unsupported Midi CC 127 value %d", new_preset); + } + else + { + control_request_preset_index(new_preset); + } + + // don't set any return param, as this one is already handled and its not a parameter + } + } + + return param; +} diff --git a/source/main/midi_helper_valeton.h b/source/main/midi_helper_valeton.h new file mode 100644 index 00000000..47b17d40 --- /dev/null +++ b/source/main/midi_helper_valeton.h @@ -0,0 +1,21 @@ +/* + Copyright (C) 2025 Greg Smith + +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. + +*/ + +#pragma once + +esp_err_t midi_helper_valeton_adjust_param_via_midi(uint8_t change_num, uint8_t midi_value); +uint16_t midi_helper_valeton_get_param_for_change_num(uint8_t change_num, uint8_t midi_value_1, uint8_t midi_value_2); From 68d482f1129f21852c319833095a7c99dec58f2a Mon Sep 17 00:00:00 2001 From: Greg Smith Date: Mon, 17 Nov 2025 13:15:06 +1100 Subject: [PATCH 18/34] - Changed Valeton parameter range setting to be outside of display module, so all platforms can use it. - finished off Valeton Midi --- source/main/control.h | 3 + source/main/display_valeton.c | 242 ++------- source/main/midi_helper_valeton.c | 551 ++++++++++++++++++++- source/main/tonex_params.h | 3 - source/main/usb_valeton_gp5.c | 13 +- source/main/valeton_params.c | 781 ++++++++++++++++++++++++++++++ source/main/valeton_params.h | 1 + 7 files changed, 1376 insertions(+), 218 deletions(-) diff --git a/source/main/control.h b/source/main/control.h index 57955a5b..ade49d25 100644 --- a/source/main/control.h +++ b/source/main/control.h @@ -269,6 +269,9 @@ enum ParamTypes #define MAX_PARAM_NAME 12 +// special cases for handling effect switches that use Midi but don't change a parameter +#define TONEX_UNKNOWN 0xFFFF + typedef struct { float Value; diff --git a/source/main/display_valeton.c b/source/main/display_valeton.c index e31d1f78..700b34fa 100644 --- a/source/main/display_valeton.c +++ b/source/main/display_valeton.c @@ -828,7 +828,6 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_nr_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_nr_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_nr_param0_label, "Threshold"); - lv_slider_set_range(objects.ui_val_nr_param0_slider, 0, 100); lv_obj_add_flag(objects.ui_val_nr_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_nr_param1_slider, LV_OBJ_FLAG_HIDDEN); @@ -851,6 +850,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_NR_PARAM_0: { + lv_slider_set_range(objects.ui_val_nr_param0_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_nr_param0_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_nr_param0_value, value_string); @@ -858,6 +858,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_NR_PARAM_1: { + lv_slider_set_range(objects.ui_val_nr_param1_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_nr_param1_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_nr_param1_value, value_string); @@ -865,6 +866,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_NR_PARAM_2: { + lv_slider_set_range(objects.ui_val_nr_param2_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_nr_param2_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_nr_param2_value, value_string); @@ -872,6 +874,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_NR_PARAM_3: { + lv_slider_set_range(objects.ui_val_nr_param3_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_nr_param3_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_nr_param3_value, value_string); @@ -879,6 +882,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_NR_PARAM_4: { + lv_slider_set_range(objects.ui_val_nr_param4_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_nr_param4_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_nr_param4_value, value_string); @@ -917,13 +921,11 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param0_label, "Sustain"); - lv_slider_set_range(objects.ui_val_pre_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_pre_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param1_label, "Volume"); - lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); lv_obj_add_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); @@ -944,25 +946,21 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param0_label, "Sustain"); - lv_slider_set_range(objects.ui_val_pre_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_pre_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param1_label, "Attack"); - lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param1_label, "Volume"); - lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param1_label, "Clip"); - lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); lv_obj_add_flag(objects.ui_val_pre_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_pre_param4_slider, LV_OBJ_FLAG_HIDDEN); @@ -975,7 +973,6 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param0_label, "Gain"); - lv_slider_set_range(objects.ui_val_pre_param0_slider, 0, 100); //todo 2 switches here @@ -1002,7 +999,6 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param0_label, "Gain"); - lv_slider_set_range(objects.ui_val_pre_param0_slider, 0, 100); lv_obj_add_flag(objects.ui_val_pre_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_pre_param1_slider, LV_OBJ_FLAG_HIDDEN); @@ -1027,25 +1023,21 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param0_label, "Gain"); - lv_slider_set_range(objects.ui_val_pre_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_pre_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param1_label, "Volume"); - lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param1_label, "Bass"); - lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param1_label, "Treble"); - lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); lv_obj_add_flag(objects.ui_val_pre_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_pre_param4_slider, LV_OBJ_FLAG_HIDDEN); @@ -1058,25 +1050,21 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param0_label, "Sense"); - lv_slider_set_range(objects.ui_val_pre_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_pre_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param1_label, "Range"); - lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param1_label, "Q"); - lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param1_label, "Mix"); - lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); // todo switch here @@ -1091,31 +1079,26 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param0_label, "Depth"); - lv_slider_set_range(objects.ui_val_pre_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_pre_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param1_label, "Rate"); - lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 10); lv_obj_clear_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param1_label, "Volume"); - lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param1_label, "Low"); - lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_pre_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param4_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param4_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param1_label, "Q"); - lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); //todo one more slider } break; @@ -1126,19 +1109,16 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param0_label, "Low"); - lv_slider_set_range(objects.ui_val_pre_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_pre_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param1_label, "High"); - lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param2_label, "Dry"); - lv_slider_set_range(objects.ui_val_pre_param2_slider, 0, 100); lv_obj_add_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); @@ -1155,31 +1135,26 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param0_label, "High"); - lv_slider_set_range(objects.ui_val_pre_param0_slider, 0, 24); lv_obj_clear_flag(objects.ui_val_pre_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param1_label, "Low"); - lv_slider_set_range(objects.ui_val_pre_param1_slider, -24, 0); lv_obj_clear_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param2_label, "Dry"); - lv_slider_set_range(objects.ui_val_pre_param2_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param3_label, "H-Vol"); - lv_slider_set_range(objects.ui_val_pre_param3_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_pre_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param4_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param4_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param4_label, "L-Vol"); - lv_slider_set_range(objects.ui_val_pre_param4_slider, 0, 100); } break; case VALETON_EFFECT_PRE_DETUNE: @@ -1188,19 +1163,16 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_pre_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param0_label, "Detune"); - lv_slider_set_range(objects.ui_val_pre_param0_slider, -50, 50); lv_obj_clear_flag(objects.ui_val_pre_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param1_label, "Wet"); - lv_slider_set_range(objects.ui_val_pre_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_pre_param2_label, "Dry"); - lv_slider_set_range(objects.ui_val_pre_param2_slider, 0, 100); lv_obj_add_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); @@ -1215,6 +1187,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_PRE_PARAM_0: { + lv_slider_set_range(objects.ui_val_pre_param0_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_pre_param0_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_pre_param0_value, value_string); @@ -1222,6 +1195,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_PRE_PARAM_1: { + lv_slider_set_range(objects.ui_val_pre_param1_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_pre_param1_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_pre_param1_value, value_string); @@ -1229,6 +1203,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_PRE_PARAM_2: { + lv_slider_set_range(objects.ui_val_pre_param2_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_pre_param2_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_pre_param2_value, value_string); @@ -1236,6 +1211,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_PRE_PARAM_3: { + lv_slider_set_range(objects.ui_val_pre_param3_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_pre_param3_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_pre_param3_value, value_string); @@ -1243,6 +1219,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_PRE_PARAM_4: { + lv_slider_set_range(objects.ui_val_pre_param4_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_pre_param4_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_pre_param4_value, value_string); @@ -1282,19 +1259,16 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_dst_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dst_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dst_param0_label, "Gain"); - lv_slider_set_range(objects.ui_val_dst_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_dst_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dst_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dst_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dst_param1_label, "Tone"); - lv_slider_set_range(objects.ui_val_dst_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_dst_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dst_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dst_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dst_param2_label, "Volume"); - lv_slider_set_range(objects.ui_val_dst_param2_slider, 0, 100); lv_obj_add_flag(objects.ui_val_dst_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_dst_param3_slider, LV_OBJ_FLAG_HIDDEN); @@ -1312,13 +1286,11 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_dst_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dst_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dst_param0_label, "Gain"); - lv_slider_set_range(objects.ui_val_dst_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_dst_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dst_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dst_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dst_param1_label, "Volume"); - lv_slider_set_range(objects.ui_val_dst_param1_slider, 0, 100); lv_obj_add_flag(objects.ui_val_dst_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_dst_param2_slider, LV_OBJ_FLAG_HIDDEN); @@ -1339,19 +1311,16 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_dst_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dst_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dst_param0_label, "Gain"); - lv_slider_set_range(objects.ui_val_dst_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_dst_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dst_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dst_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dst_param1_label, "Filter"); - lv_slider_set_range(objects.ui_val_dst_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_dst_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dst_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dst_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dst_param2_label, "Volume"); - lv_slider_set_range(objects.ui_val_dst_param2_slider, 0, 100); lv_obj_add_flag(objects.ui_val_dst_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_dst_param3_slider, LV_OBJ_FLAG_HIDDEN); @@ -1369,13 +1338,11 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_dst_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dst_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dst_param0_label, "Fuzz"); - lv_slider_set_range(objects.ui_val_dst_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_dst_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dst_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dst_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dst_param1_label, "Volume"); - lv_slider_set_range(objects.ui_val_dst_param1_slider, 0, 100); lv_obj_add_flag(objects.ui_val_dst_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_dst_param2_slider, LV_OBJ_FLAG_HIDDEN); @@ -1396,37 +1363,33 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_dst_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dst_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dst_param0_label, "Gain"); - lv_slider_set_range(objects.ui_val_dst_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_dst_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dst_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dst_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dst_param1_label, "Blend"); - lv_slider_set_range(objects.ui_val_dst_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_dst_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dst_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dst_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dst_param2_label, "Volume"); - lv_slider_set_range(objects.ui_val_dst_param2_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_dst_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dst_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dst_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dst_param3_label, "Bass"); - lv_slider_set_range(objects.ui_val_dst_param3_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_dst_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dst_param4_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dst_param4_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dst_param4_label, "Treble"); - lv_slider_set_range(objects.ui_val_dst_param4_slider, 0, 100); } break; } } break; case VALETON_PARAM_DIST_PARAM_0: { + lv_slider_set_range(objects.ui_val_dst_param0_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_dst_param0_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_dst_param0_value, value_string); @@ -1434,6 +1397,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_DIST_PARAM_1: { + lv_slider_set_range(objects.ui_val_dst_param1_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_dst_param1_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_dst_param1_value, value_string); @@ -1441,6 +1405,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_DIST_PARAM_2: { + lv_slider_set_range(objects.ui_val_dst_param2_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_dst_param2_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_dst_param2_value, value_string); @@ -1448,6 +1413,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_DIST_PARAM_3: { + lv_slider_set_range(objects.ui_val_dst_param3_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_dst_param3_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_dst_param3_value, value_string); @@ -1455,6 +1421,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_DIST_PARAM_4: { + lv_slider_set_range(objects.ui_val_dst_param4_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_dst_param4_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_dst_param4_value, value_string); @@ -1493,19 +1460,16 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param0_label, "Gain"); - lv_slider_set_range(objects.ui_val_amp_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param1_label, "Tone"); - lv_slider_set_range(objects.ui_val_amp_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param2_label, "Volume"); - lv_slider_set_range(objects.ui_val_amp_param2_slider, 0, 100); lv_obj_add_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); @@ -1538,31 +1502,26 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param0_label, "Gain"); - lv_slider_set_range(objects.ui_val_amp_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param1_label, "Presence"); - lv_slider_set_range(objects.ui_val_amp_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param2_label, "Volume"); - lv_slider_set_range(objects.ui_val_amp_param2_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param3_label, "Bass"); - lv_slider_set_range(objects.ui_val_amp_param3_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param4_label, "Middle"); - lv_slider_set_range(objects.ui_val_amp_param4_slider, 0, 100); // todo Treble } break; @@ -1574,31 +1533,26 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param0_label, "Gain"); - lv_slider_set_range(objects.ui_val_amp_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param1_label, "Volume"); - lv_slider_set_range(objects.ui_val_amp_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param2_label, "Bass"); - lv_slider_set_range(objects.ui_val_amp_param2_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param3_label, "Middle"); - lv_slider_set_range(objects.ui_val_amp_param3_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param4_label, "Treble"); - lv_slider_set_range(objects.ui_val_amp_param4_slider, 0, 100); //todo bright switch } break; @@ -1609,19 +1563,16 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param0_label, "Gain"); - lv_slider_set_range(objects.ui_val_amp_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param1_label, "Tone Cut"); - lv_slider_set_range(objects.ui_val_amp_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param2_label, "Volume"); - lv_slider_set_range(objects.ui_val_amp_param2_slider, 0, 100); lv_obj_add_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); @@ -1640,25 +1591,21 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param0_label, "Volume"); - lv_slider_set_range(objects.ui_val_amp_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param1_label, "Bass"); - lv_slider_set_range(objects.ui_val_amp_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param2_label, "Middle"); - lv_slider_set_range(objects.ui_val_amp_param2_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param3_label, "Treble"); - lv_slider_set_range(objects.ui_val_amp_param3_slider, 0, 100); lv_obj_add_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); @@ -1673,31 +1620,26 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param0_label, "Gain 1"); - lv_slider_set_range(objects.ui_val_amp_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param1_label, "Presence"); - lv_slider_set_range(objects.ui_val_amp_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param2_label, "Volume"); - lv_slider_set_range(objects.ui_val_amp_param2_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param3_label, "Bass"); - lv_slider_set_range(objects.ui_val_amp_param3_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param4_label, "Middle"); - lv_slider_set_range(objects.ui_val_amp_param4_slider, 0, 100); //todo: treble, gain 2 } break; @@ -1708,31 +1650,26 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param0_label, "Gain"); - lv_slider_set_range(objects.ui_val_amp_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param1_label, "Tone Cut"); - lv_slider_set_range(objects.ui_val_amp_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param2_label, "Volume"); - lv_slider_set_range(objects.ui_val_amp_param2_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param3_label, "Bass"); - lv_slider_set_range(objects.ui_val_amp_param3_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param4_label, "Treble"); - lv_slider_set_range(objects.ui_val_amp_param4_slider, 0, 100); //todo: add character switch } break; @@ -1743,31 +1680,26 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param0_label, "Gain 1"); - lv_slider_set_range(objects.ui_val_amp_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param1_label, "Tone 1"); - lv_slider_set_range(objects.ui_val_amp_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param2_label, "Gain 2"); - lv_slider_set_range(objects.ui_val_amp_param2_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param3_label, "Tone 2"); - lv_slider_set_range(objects.ui_val_amp_param3_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param4_label, "Volume"); - lv_slider_set_range(objects.ui_val_amp_param4_slider, 0, 100); } break; case VALETON_EFFECT_AMP_Z38_OD: @@ -1776,31 +1708,26 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param0_label, "Gain"); - lv_slider_set_range(objects.ui_val_amp_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param1_label, "Tone Cut"); - lv_slider_set_range(objects.ui_val_amp_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param2_label, "Volume"); - lv_slider_set_range(objects.ui_val_amp_param2_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param3_label, "Bass"); - lv_slider_set_range(objects.ui_val_amp_param3_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param4_label, "Middle"); - lv_slider_set_range(objects.ui_val_amp_param4_slider, 0, 100); //todo: treble } break; @@ -1811,31 +1738,26 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param0_label, "Gain"); - lv_slider_set_range(objects.ui_val_amp_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param1_label, "Volume"); - lv_slider_set_range(objects.ui_val_amp_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param2_label, "Bass"); - lv_slider_set_range(objects.ui_val_amp_param2_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param3_label, "Mid"); - lv_slider_set_range(objects.ui_val_amp_param3_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param4_label, "Treble"); - lv_slider_set_range(objects.ui_val_amp_param4_slider, 0, 100); // todo presence } break; @@ -1846,19 +1768,16 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param0_label, "Gain"); - lv_slider_set_range(objects.ui_val_amp_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param1_label, "Bass"); - lv_slider_set_range(objects.ui_val_amp_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param2_label, "Middle"); - lv_slider_set_range(objects.ui_val_amp_param2_slider, 0, 100); //todo: middle freq @@ -1866,13 +1785,11 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param3_label, "Treble"); - lv_slider_set_range(objects.ui_val_amp_param3_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param4_label, "Volume"); - lv_slider_set_range(objects.ui_val_amp_param4_slider, 0, 100); } break; case VALETON_EFFECT_AMP_FOXY_BASS: @@ -1881,19 +1798,16 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param0_label, "Volume"); - lv_slider_set_range(objects.ui_val_amp_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param1_label, "Bass"); - lv_slider_set_range(objects.ui_val_amp_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param2_label, "Treble"); - lv_slider_set_range(objects.ui_val_amp_param2_slider, 0, 100); lv_obj_add_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); @@ -1911,31 +1825,26 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param0_label, "Gain"); - lv_slider_set_range(objects.ui_val_amp_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param1_label, "Volume"); - lv_slider_set_range(objects.ui_val_amp_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param2_label, "Bass"); - lv_slider_set_range(objects.ui_val_amp_param2_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param3_label, "Mid"); - lv_slider_set_range(objects.ui_val_amp_param3_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param4_label, "Treble"); - lv_slider_set_range(objects.ui_val_amp_param4_slider, 0, 100); } break; case VALETON_EFFECT_AMP_AC_PRE1: // fallthrough @@ -1945,25 +1854,21 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_amp_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param0_label, "Volume"); - lv_slider_set_range(objects.ui_val_amp_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param1_label, "Tone"); - lv_slider_set_range(objects.ui_val_amp_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param2_label, "Balance"); - lv_slider_set_range(objects.ui_val_amp_param2_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param3_label, "EQ Freq"); - lv_slider_set_range(objects.ui_val_amp_param3_slider, 0, 100); // todo: EQ Q @@ -1971,13 +1876,13 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param4_label, "EQ Gain"); - lv_slider_set_range(objects.ui_val_amp_param4_slider, 0, 100); } break; } } break; case VALETON_PARAM_AMP_PARAM_0: { + lv_slider_set_range(objects.ui_val_amp_param0_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_amp_param0_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_amp_param0_value, value_string); @@ -1985,6 +1890,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_AMP_PARAM_1: { + lv_slider_set_range(objects.ui_val_amp_param1_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_amp_param1_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_amp_param1_value, value_string); @@ -1992,6 +1898,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_AMP_PARAM_2: { + lv_slider_set_range(objects.ui_val_amp_param2_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_amp_param2_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_amp_param2_value, value_string); @@ -1999,6 +1906,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_AMP_PARAM_3: { + lv_slider_set_range(objects.ui_val_amp_param3_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_amp_param3_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_amp_param3_value, value_string); @@ -2006,6 +1914,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_AMP_PARAM_4: { + lv_slider_set_range(objects.ui_val_amp_param4_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_amp_param4_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_amp_param4_value, value_string); @@ -2041,7 +1950,6 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_cab_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_cab_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_cab_param0_label, "Volume"); - lv_slider_set_range(objects.ui_val_cab_param0_slider, 0, 100); lv_obj_add_flag(objects.ui_val_cab_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_cab_param1_slider, LV_OBJ_FLAG_HIDDEN); @@ -2062,6 +1970,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_CAB_PARAM_0: { + lv_slider_set_range(objects.ui_val_cab_param0_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_cab_param0_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_cab_param0_value, value_string); @@ -2069,6 +1978,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_CAB_PARAM_1: { + lv_slider_set_range(objects.ui_val_cab_param1_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_cab_param1_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_cab_param1_value, value_string); @@ -2076,6 +1986,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_CAB_PARAM_2: { + lv_slider_set_range(objects.ui_val_cab_param2_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_cab_param2_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_cab_param2_value, value_string); @@ -2083,6 +1994,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_CAB_PARAM_3: { + lv_slider_set_range(objects.ui_val_cab_param3_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_cab_param3_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_cab_param3_value, value_string); @@ -2090,6 +2002,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_CAB_PARAM_4: { + lv_slider_set_range(objects.ui_val_cab_param4_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_cab_param4_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_cab_param4_value, value_string); @@ -2128,31 +2041,26 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_eq_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_eq_param0_label, "125 Hz"); - lv_slider_set_range(objects.ui_val_eq_param0_slider, -50, 50); lv_obj_clear_flag(objects.ui_val_eq_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_eq_param1_label, "400 Hz"); - lv_slider_set_range(objects.ui_val_eq_param1_slider, -50, 50); lv_obj_clear_flag(objects.ui_val_eq_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_eq_param2_label, "800 Hz"); - lv_slider_set_range(objects.ui_val_eq_param2_slider, -50, 50); lv_obj_clear_flag(objects.ui_val_eq_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_eq_param3_label, "1.6 kHz"); - lv_slider_set_range(objects.ui_val_eq_param3_slider, -50, 50); lv_obj_clear_flag(objects.ui_val_eq_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param4_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param4_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_eq_param4_label, "4 kHz"); - lv_slider_set_range(objects.ui_val_eq_param4_slider, -50, 50); //todo Volume } break; @@ -2163,31 +2071,26 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_eq_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_eq_param0_label, "100 Hz"); - lv_slider_set_range(objects.ui_val_eq_param0_slider, -50, 50); lv_obj_clear_flag(objects.ui_val_eq_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_eq_param1_label, "500 Hz"); - lv_slider_set_range(objects.ui_val_eq_param1_slider, -50, 50); lv_obj_clear_flag(objects.ui_val_eq_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_eq_param2_label, "1 kHz"); - lv_slider_set_range(objects.ui_val_eq_param2_slider, -50, 50); lv_obj_clear_flag(objects.ui_val_eq_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_eq_param3_label, "3 kHz"); - lv_slider_set_range(objects.ui_val_eq_param3_slider, -50, 50); lv_obj_clear_flag(objects.ui_val_eq_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param4_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param4_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_eq_param4_label, "6 kHz"); - lv_slider_set_range(objects.ui_val_eq_param4_slider, -50, 50); //todo volume } break; @@ -2198,31 +2101,26 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_eq_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_eq_param0_label, "33 Hz"); - lv_slider_set_range(objects.ui_val_eq_param0_slider, -50, 50); lv_obj_clear_flag(objects.ui_val_eq_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_eq_param1_label, "150 Hz"); - lv_slider_set_range(objects.ui_val_eq_param1_slider, -50, 50); lv_obj_clear_flag(objects.ui_val_eq_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_eq_param2_label, "600 Hz"); - lv_slider_set_range(objects.ui_val_eq_param2_slider, -50, 50); lv_obj_clear_flag(objects.ui_val_eq_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_eq_param3_label, "2 kHz"); - lv_slider_set_range(objects.ui_val_eq_param3_slider, -50, 50); lv_obj_clear_flag(objects.ui_val_eq_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param4_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param4_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_eq_param4_label, "8 kHz"); - lv_slider_set_range(objects.ui_val_eq_param4_slider, -50, 50); //todo Volume } break; @@ -2233,31 +2131,26 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_eq_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_eq_param0_label, "50 Hz"); - lv_slider_set_range(objects.ui_val_eq_param0_slider, -50, 50); lv_obj_clear_flag(objects.ui_val_eq_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_eq_param1_label, "120 Hz"); - lv_slider_set_range(objects.ui_val_eq_param1_slider, -50, 50); lv_obj_clear_flag(objects.ui_val_eq_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_eq_param2_label, "400 Hz"); - lv_slider_set_range(objects.ui_val_eq_param2_slider, -50, 50); lv_obj_clear_flag(objects.ui_val_eq_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_eq_param3_label, "800 Hz"); - lv_slider_set_range(objects.ui_val_eq_param3_slider, -50, 50); lv_obj_clear_flag(objects.ui_val_eq_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param4_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param4_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_eq_param4_label, "4.5 kHz"); - lv_slider_set_range(objects.ui_val_eq_param4_slider, -50, 50); //todo Volume } break; @@ -2268,37 +2161,33 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_eq_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_eq_param0_label, "80 Hz"); - lv_slider_set_range(objects.ui_val_eq_param0_slider, -50, 50); lv_obj_clear_flag(objects.ui_val_eq_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_eq_param1_label, "240 Hz"); - lv_slider_set_range(objects.ui_val_eq_param1_slider, -50, 50); lv_obj_clear_flag(objects.ui_val_eq_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_eq_param2_label, "750 Hz"); - lv_slider_set_range(objects.ui_val_eq_param2_slider, -50, 50); lv_obj_clear_flag(objects.ui_val_eq_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_eq_param3_label, "2.2 kHz"); - lv_slider_set_range(objects.ui_val_eq_param3_slider, -50, 50); lv_obj_clear_flag(objects.ui_val_eq_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param4_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_eq_param4_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_eq_param4_label, "6.6 kHz"); - lv_slider_set_range(objects.ui_val_eq_param4_slider, -50, 50); } break; } } break; case VALETON_PARAM_EQ_PARAM_0: { + lv_slider_set_range(objects.ui_val_eq_param0_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_eq_param0_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_eq_param0_value, value_string); @@ -2306,6 +2195,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_EQ_PARAM_1: { + lv_slider_set_range(objects.ui_val_eq_param1_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_eq_param1_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_eq_param1_value, value_string); @@ -2313,6 +2203,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_EQ_PARAM_2: { + lv_slider_set_range(objects.ui_val_eq_param2_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_eq_param2_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_eq_param2_value, value_string); @@ -2320,6 +2211,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_EQ_PARAM_3: { + lv_slider_set_range(objects.ui_val_eq_param3_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_eq_param3_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_eq_param3_value, value_string); @@ -2327,6 +2219,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_EQ_PARAM_4: { + lv_slider_set_range(objects.ui_val_eq_param4_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_eq_param4_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_eq_param4_value, value_string); @@ -2366,19 +2259,16 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_mod_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_mod_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_mod_param0_label, "Depth"); - lv_slider_set_range(objects.ui_val_mod_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_mod_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_mod_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_mod_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_mod_param1_label, "Rate"); - lv_slider_set_range(objects.ui_val_mod_param1_slider, 0, 10); lv_obj_clear_flag(objects.ui_val_mod_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_mod_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_mod_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_mod_param2_label, "Tone"); - lv_slider_set_range(objects.ui_val_mod_param2_slider, 0, 100); lv_obj_add_flag(objects.ui_val_mod_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_mod_param3_slider, LV_OBJ_FLAG_HIDDEN); @@ -2396,25 +2286,21 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_mod_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_mod_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_mod_param0_label, "Depth"); - lv_slider_set_range(objects.ui_val_mod_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_mod_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_mod_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_mod_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_mod_param1_label, "Rate"); - lv_slider_set_range(objects.ui_val_mod_param1_slider, 0, 10); lv_obj_clear_flag(objects.ui_val_mod_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_mod_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_mod_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_mod_param2_label, "P.Delay"); - lv_slider_set_range(objects.ui_val_mod_param2_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_mod_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_mod_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_mod_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_mod_param3_label, "F.Back"); - lv_slider_set_range(objects.ui_val_mod_param3_slider, 0, 100); lv_obj_add_flag(objects.ui_val_mod_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_mod_param4_slider, LV_OBJ_FLAG_HIDDEN); @@ -2427,7 +2313,6 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_mod_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_mod_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_mod_param0_label, "Rate"); - lv_slider_set_range(objects.ui_val_mod_param0_slider, 0, 10); lv_obj_add_flag(objects.ui_val_mod_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_mod_param1_slider, LV_OBJ_FLAG_HIDDEN); @@ -2454,7 +2339,6 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_mod_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_mod_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_mod_param0_label, "Depth"); - lv_slider_set_range(objects.ui_val_mod_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_mod_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_mod_param1_slider, LV_OBJ_FLAG_HIDDEN); @@ -2482,19 +2366,16 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_mod_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_mod_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_mod_param0_label, "Depth"); - lv_slider_set_range(objects.ui_val_mod_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_mod_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_mod_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_mod_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_mod_param1_label, "Rate"); - lv_slider_set_range(objects.ui_val_mod_param1_slider, 0, 10); lv_obj_clear_flag(objects.ui_val_mod_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_mod_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_mod_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_mod_param2_label, "Volume"); - lv_slider_set_range(objects.ui_val_mod_param2_slider, 0, 100); lv_obj_add_flag(objects.ui_val_mod_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_mod_param3_slider, LV_OBJ_FLAG_HIDDEN); @@ -2511,25 +2392,21 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_mod_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_mod_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_mod_param0_label, "Depth"); - lv_slider_set_range(objects.ui_val_mod_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_mod_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_mod_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_mod_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_mod_param1_label, "Rate"); - lv_slider_set_range(objects.ui_val_mod_param1_slider, 0, 10); lv_obj_clear_flag(objects.ui_val_mod_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_mod_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_mod_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_mod_param2_label, "Volume"); - lv_slider_set_range(objects.ui_val_mod_param2_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_mod_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_mod_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_mod_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_mod_param3_label, "Bias"); - lv_slider_set_range(objects.ui_val_mod_param3_slider, 0, 100); lv_obj_add_flag(objects.ui_val_mod_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_mod_param4_slider, LV_OBJ_FLAG_HIDDEN); @@ -2540,6 +2417,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_MOD_PARAM_0: { + lv_slider_set_range(objects.ui_val_mod_param0_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_mod_param0_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_mod_param0_value, value_string); @@ -2547,6 +2425,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_MOD_PARAM_1: { + lv_slider_set_range(objects.ui_val_mod_param1_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_mod_param1_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_mod_param1_value, value_string); @@ -2554,6 +2433,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_MOD_PARAM_2: { + lv_slider_set_range(objects.ui_val_mod_param2_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_mod_param2_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_mod_param2_value, value_string); @@ -2561,6 +2441,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_MOD_PARAM_3: { + lv_slider_set_range(objects.ui_val_mod_param3_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_mod_param3_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_mod_param3_value, value_string); @@ -2568,6 +2449,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_MOD_PARAM_4: { + lv_slider_set_range(objects.ui_val_mod_param4_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_mod_param4_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_mod_param4_value, value_string); @@ -2609,19 +2491,16 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_dly_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dly_param0_label, "Mix"); - lv_slider_set_range(objects.ui_val_dly_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_dly_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dly_param1_label, "Time"); - lv_slider_set_range(objects.ui_val_dly_param1_slider, 0, 1000); lv_obj_clear_flag(objects.ui_val_dly_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dly_param2_label, "F.Back"); - lv_slider_set_range(objects.ui_val_dly_param2_slider, 0, 100); // todo trail switch @@ -2640,19 +2519,16 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_dly_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dly_param0_label, "Mix"); - lv_slider_set_range(objects.ui_val_dly_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_dly_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dly_param1_label, "Time"); - lv_slider_set_range(objects.ui_val_dly_param1_slider, 0, 4000); lv_obj_clear_flag(objects.ui_val_dly_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dly_param2_label, "F.Back"); - lv_slider_set_range(objects.ui_val_dly_param2_slider, 0, 100); // todo trail switch @@ -2671,19 +2547,16 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_dly_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dly_param0_label, "Mix"); - lv_slider_set_range(objects.ui_val_dly_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_dly_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dly_param1_label, "Time"); - lv_slider_set_range(objects.ui_val_dly_param1_slider, 0, 300); lv_obj_clear_flag(objects.ui_val_dly_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dly_param2_label, "F.Back"); - lv_slider_set_range(objects.ui_val_dly_param2_slider, 0, 100); // todo trail switch @@ -2702,19 +2575,16 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_dly_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dly_param0_label, "Mix"); - lv_slider_set_range(objects.ui_val_dly_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_dly_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dly_param1_label, "Time"); - lv_slider_set_range(objects.ui_val_dly_param1_slider, 0, 780); lv_obj_clear_flag(objects.ui_val_dly_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dly_param2_label, "F.Back"); - lv_slider_set_range(objects.ui_val_dly_param2_slider, 0, 100); // todo trail switch @@ -2733,19 +2603,16 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_dly_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dly_param0_label, "Mix"); - lv_slider_set_range(objects.ui_val_dly_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_dly_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dly_param1_label, "Time"); - lv_slider_set_range(objects.ui_val_dly_param1_slider, 0, 500); lv_obj_clear_flag(objects.ui_val_dly_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dly_param2_label, "F.Back"); - lv_slider_set_range(objects.ui_val_dly_param2_slider, 0, 100); // todo trail switch @@ -2764,31 +2631,26 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_dly_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dly_param0_label, "Mix"); - lv_slider_set_range(objects.ui_val_dly_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_dly_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dly_param1_label, "Time"); - lv_slider_set_range(objects.ui_val_dly_param1_slider, 0, 1000); lv_obj_clear_flag(objects.ui_val_dly_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dly_param2_label, "F.Back"); - lv_slider_set_range(objects.ui_val_dly_param2_slider, 0, 100); lv_obj_add_flag(objects.ui_val_dly_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_dly_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_dly_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dly_param3_label, "R-Mix"); - lv_slider_set_range(objects.ui_val_dly_param3_slider, 0, 100); lv_obj_add_flag(objects.ui_val_dly_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_dly_param4_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_dly_param4_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dly_param4_label, "Freq"); - lv_slider_set_range(objects.ui_val_dly_param4_slider, 0, 100); // todo Tone // todo trail switch @@ -2800,31 +2662,26 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_dly_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dly_param0_label, "Mix"); - lv_slider_set_range(objects.ui_val_dly_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_dly_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dly_param1_label, "Time"); - lv_slider_set_range(objects.ui_val_dly_param1_slider, 0, 1000); lv_obj_clear_flag(objects.ui_val_dly_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dly_param2_label, "F.Back"); - lv_slider_set_range(objects.ui_val_dly_param2_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_dly_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dly_param3_label, "S-Depth"); - lv_slider_set_range(objects.ui_val_dly_param3_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_dly_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param4_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_dly_param4_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_dly_param4_label, "S-Rate"); - lv_slider_set_range(objects.ui_val_dly_param4_slider, 0, 100); // todo trail switch } break; @@ -2833,6 +2690,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_DLY_PARAM_0: { + lv_slider_set_range(objects.ui_val_dly_param0_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_dly_param0_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_dly_param0_value, value_string); @@ -2840,6 +2698,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_DLY_PARAM_1: { + lv_slider_set_range(objects.ui_val_dly_param1_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_dly_param1_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_dly_param1_value, value_string); @@ -2847,6 +2706,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_DLY_PARAM_2: { + lv_slider_set_range(objects.ui_val_dly_param2_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_dly_param2_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_dly_param2_value, value_string); @@ -2854,6 +2714,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_DLY_PARAM_3: { + lv_slider_set_range(objects.ui_val_dly_param3_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_dly_param3_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_dly_param3_value, value_string); @@ -2861,6 +2722,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_DLY_PARAM_4: { + lv_slider_set_range(objects.ui_val_dly_param4_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_dly_param4_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_dly_param4_value, value_string); @@ -2900,19 +2762,16 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_rvb_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_rvb_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_rvb_param0_label, "Mix"); - lv_slider_set_range(objects.ui_val_rvb_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_rvb_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_rvb_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_rvb_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_rvb_param1_label, "Decay"); - lv_slider_set_range(objects.ui_val_rvb_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_rvb_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_rvb_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_rvb_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_rvb_param2_label, "Damp"); - lv_slider_set_range(objects.ui_val_rvb_param2_slider, 0, 100); //todo trail switch @@ -2937,13 +2796,11 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_rvb_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_rvb_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_rvb_param0_label, "Mix"); - lv_slider_set_range(objects.ui_val_rvb_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_rvb_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_rvb_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_rvb_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_rvb_param1_label, "Decay"); - lv_slider_set_range(objects.ui_val_rvb_param1_slider, 0, 100); //todo trail switch @@ -2966,25 +2823,21 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_rvb_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_rvb_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_rvb_param0_label, "Mix"); - lv_slider_set_range(objects.ui_val_rvb_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_rvb_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_rvb_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_rvb_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_rvb_param1_label, "Decay"); - lv_slider_set_range(objects.ui_val_rvb_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_rvb_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_rvb_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_rvb_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_rvb_param2_label, "Damp"); - lv_slider_set_range(objects.ui_val_rvb_param2_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_rvb_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_rvb_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_rvb_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_rvb_param3_label, "Mod"); - lv_slider_set_range(objects.ui_val_rvb_param3_slider, 0, 100); //todo trail switch @@ -2997,6 +2850,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_RVB_PARAM_0: { + lv_slider_set_range(objects.ui_val_rvb_param0_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_rvb_param0_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_rvb_param0_value, value_string); @@ -3004,6 +2858,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_RVB_PARAM_1: { + lv_slider_set_range(objects.ui_val_rvb_param1_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_rvb_param1_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_rvb_param1_value, value_string); @@ -3011,6 +2866,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_RVB_PARAM_2: { + lv_slider_set_range(objects.ui_val_rvb_param2_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_rvb_param2_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_rvb_param2_value, value_string); @@ -3018,6 +2874,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_RVB_PARAM_3: { + lv_slider_set_range(objects.ui_val_rvb_param3_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_rvb_param3_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_rvb_param3_value, value_string); @@ -3025,6 +2882,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_RVB_PARAM_4: { + lv_slider_set_range(objects.ui_val_rvb_param4_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_rvb_param4_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_rvb_param4_value, value_string); @@ -3060,35 +2918,31 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_ns_param0_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_ns_param0_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_ns_param0_label, "Gain"); - lv_slider_set_range(objects.ui_val_ns_param0_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_ns_param1_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_ns_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_ns_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_ns_param1_label, "Volume"); - lv_slider_set_range(objects.ui_val_ns_param1_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_ns_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_ns_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_ns_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_ns_param2_label, "Bass"); - lv_slider_set_range(objects.ui_val_ns_param2_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_ns_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_ns_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_ns_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_ns_param3_label, "Middle"); - lv_slider_set_range(objects.ui_val_ns_param3_slider, 0, 100); lv_obj_clear_flag(objects.ui_val_ns_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_ns_param4_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_ns_param4_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_ns_param4_label, "Treble"); - lv_slider_set_range(objects.ui_val_ns_param4_slider, 0, 100); } break; case VALETON_PARAM_NS_PARAM_0: { + lv_slider_set_range(objects.ui_val_ns_param0_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_ns_param0_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_ns_param0_value, value_string); @@ -3096,6 +2950,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_NS_PARAM_1: { + lv_slider_set_range(objects.ui_val_ns_param1_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_ns_param1_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_ns_param1_value, value_string); @@ -3103,6 +2958,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_NS_PARAM_2: { + lv_slider_set_range(objects.ui_val_ns_param2_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_ns_param2_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_ns_param2_value, value_string); @@ -3110,6 +2966,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_NS_PARAM_3: { + lv_slider_set_range(objects.ui_val_ns_param3_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_ns_param3_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_ns_param3_value, value_string); @@ -3117,6 +2974,7 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_PARAM_NS_PARAM_4: { + lv_slider_set_range(objects.ui_val_ns_param4_slider, param_entry->Min, param_entry->Max); lv_slider_set_value(objects.ui_val_ns_param4_slider, round(param_entry->Value), LV_ANIM_OFF); sprintf(value_string, "%d", (int)round(param_entry->Value)); lv_label_set_text(objects.ui_val_ns_param4_value, value_string); diff --git a/source/main/midi_helper_valeton.c b/source/main/midi_helper_valeton.c index 3e52f707..abdd3198 100644 --- a/source/main/midi_helper_valeton.c +++ b/source/main/midi_helper_valeton.c @@ -1140,60 +1140,579 @@ esp_err_t midi_helper_valeton_adjust_param_via_midi(uint8_t change_num, uint8_t *****************************************************************************/ uint16_t midi_helper_valeton_get_param_for_change_num(uint8_t change_num, uint8_t midi_value_1, uint8_t midi_value_2) { - uint16_t param = 0; //TONEX_UNKNOWN; + uint16_t param = TONEX_UNKNOWN; tModellerParameter* param_ptr; switch (change_num) { case 0: { - //todo param = VALETON_PARAM_NR_ENABLE; + param = VALETON_PARAM_NR_ENABLE; + } break; + + case 1: + { + param = VALETON_PARAM_PRE_ENABLE; + } break; + + case 2: + { + param = VALETON_PARAM_DIST_ENABLE; + } break; + + case 3: + { + param = VALETON_PARAM_AMP_ENABLE; + } break; + + case 4: + { + param = VALETON_PARAM_CAB_ENABLE; + } break; + + case 5: + { + param = VALETON_PARAM_EQ_ENABLE; + } break; + + case 6: + { + param = VALETON_PARAM_MOD_ENABLE; + } break; + + case 7: + { + param = VALETON_PARAM_DLY_ENABLE; + } break; + + case 8: + { + param = VALETON_PARAM_RVB_ENABLE; + } break; + + case 9: + { + param = VALETON_PARAM_NS_ENABLE; + } break; + + case 10: + { + param = VALETON_PARAM_NR_TYPE; + } break; + + case 11: + { + param = VALETON_PARAM_PRE_TYPE; + } break; + + case 12: + { + param = VALETON_PARAM_DIST_TYPE; + } break; + + case 13: + { + param = VALETON_PARAM_AMP_TYPE; + } break; + + case 14: + { + param = VALETON_PARAM_CAB_TYPE; + } break; + + case 15: + { + param = VALETON_PARAM_EQ_TYPE; + } break; + + case 16: + { + param = VALETON_PARAM_MOD_TYPE; + } break; + + case 17: + { + param = VALETON_PARAM_DLY_TYPE; + } break; + + case 18: + { + param = VALETON_PARAM_RVB_TYPE; + } break; + + case 19: + { + param = VALETON_PARAM_NS_TYPE; + } break; + + case 20: + { + param = VALETON_PARAM_PATCH_VOLUME; + } break; + + case 21: + { + param = VALETON_PARAM_NR_PARAM_0; + } break; + + case 23: + { + param = VALETON_PARAM_NR_PARAM_1; + } break; + + case 24: + { + param = VALETON_PARAM_NR_PARAM_2; + } break; + + case 25: + { + param = VALETON_PARAM_NR_PARAM_3; + } break; + + case 26: + { + param = VALETON_PARAM_NR_PARAM_4; + } break; + + case 27: + { + param = VALETON_PARAM_NR_PARAM_5; + } break; + + case 28: + { + param = VALETON_PARAM_NR_PARAM_6; + } break; + + case 29: + { + param = VALETON_PARAM_NR_PARAM_7; + } break; + + case 30: + { + param = VALETON_PARAM_PRE_PARAM_0; + } break; + + case 31: + { + param = VALETON_PARAM_PRE_PARAM_1; + } break; + + case 32: + { + param = VALETON_PARAM_PRE_PARAM_2; + } break; + + case 33: + { + param = VALETON_PARAM_PRE_PARAM_3; + } break; + + case 34: + { + param = VALETON_PARAM_PRE_PARAM_4; + } break; + + case 35: + { + param = VALETON_PARAM_PRE_PARAM_5; + } break; + + case 36: + { + param = VALETON_PARAM_PRE_PARAM_6; + } break; + + case 37: + { + param = VALETON_PARAM_PRE_PARAM_7; + } break; + + case 38: + { + param = VALETON_PARAM_DIST_PARAM_0; + } break; + + case 39: + { + param = VALETON_PARAM_DIST_PARAM_1; + } break; + + case 40: + { + param = VALETON_PARAM_DIST_PARAM_2; + } break; + + case 41: + { + param = VALETON_PARAM_DIST_PARAM_3; + } break; + + case 42: + { + param = VALETON_PARAM_DIST_PARAM_4; + } break; + + case 43: + { + param = VALETON_PARAM_DIST_PARAM_5; + } break; + + case 44: + { + param = VALETON_PARAM_DIST_PARAM_6; + } break; + + case 45: + { + param = VALETON_PARAM_DIST_PARAM_7; + } break; + + case 46: + { + param = VALETON_PARAM_AMP_PARAM_0; + } break; + + case 47: + { + param = VALETON_PARAM_AMP_PARAM_1; + } break; + + case 48: + { + param = VALETON_PARAM_AMP_PARAM_2; + } break; + + case 49: + { + param = VALETON_PARAM_AMP_PARAM_3; + } break; + + case 50: + { + param = VALETON_PARAM_AMP_PARAM_4; + } break; + + case 51: + { + param = VALETON_PARAM_AMP_PARAM_5; + } break; + + case 52: + { + param = VALETON_PARAM_AMP_PARAM_6; + } break; + + case 53: + { + param = VALETON_PARAM_AMP_PARAM_7; + } break; + + case 54: + { + param = VALETON_PARAM_CAB_PARAM_0; + } break; + + case 55: + { + param = VALETON_PARAM_CAB_PARAM_1; + } break; + + case 56: + { + param = VALETON_PARAM_CAB_PARAM_2; + } break; + + case 57: + { + param = VALETON_PARAM_CAB_PARAM_3; } break; - case 1: + case 58: { - //todo param = VALETON_PARAM_NR_ENABLE; + param = VALETON_PARAM_CAB_PARAM_4; } break; - case 2: + case 59: { + param = VALETON_PARAM_CAB_PARAM_5; } break; + case 60: + { + param = VALETON_PARAM_CAB_PARAM_6; + } break; - case 116: + case 61: { - param = VALETON_GLOBAL_INPUT_TRIM; + param = VALETON_PARAM_CAB_PARAM_7; } break; - case 117: + case 62: { - param = VALETON_GLOBAL_CABSIM_BYPASS; + param = VALETON_PARAM_EQ_PARAM_0; } break; - - case 118: + + case 63: { + param = VALETON_PARAM_EQ_PARAM_1; } break; - - case 119: + + case 64: { - + param = VALETON_PARAM_EQ_PARAM_2; + } break; + + case 65: + { + param = VALETON_PARAM_EQ_PARAM_3; + } break; + + case 66: + { + param = VALETON_PARAM_EQ_PARAM_4; + } break; + + case 67: + { + param = VALETON_PARAM_EQ_PARAM_5; + } break; + + case 68: + { + param = VALETON_PARAM_EQ_PARAM_6; + } break; + + case 69: + { + param = VALETON_PARAM_EQ_PARAM_7; + } break; + + case 70: + { + param = VALETON_PARAM_MOD_PARAM_0; + } break; + + case 71: + { + param = VALETON_PARAM_MOD_PARAM_1; + } break; + + case 72: + { + param = VALETON_PARAM_MOD_PARAM_2; + } break; + + case 73: + { + param = VALETON_PARAM_MOD_PARAM_3; + } break; + + case 74: + { + param = VALETON_PARAM_MOD_PARAM_4; + } break; + + case 75: + { + param = VALETON_PARAM_MOD_PARAM_5; + } break; + + case 76: + { + param = VALETON_PARAM_MOD_PARAM_6; + } break; + + case 77: + { + param = VALETON_PARAM_MOD_PARAM_7; + } break; + + case 78: + { + param = VALETON_PARAM_DLY_PARAM_0; + } break; + + case 79: + { + param = VALETON_PARAM_DLY_PARAM_1; + } break; + + case 80: + { + param = VALETON_PARAM_DLY_PARAM_2; + } break; + + case 81: + { + param = VALETON_PARAM_DLY_PARAM_3; + } break; + + case 82: + { + param = VALETON_PARAM_DLY_PARAM_4; + } break; + + case 83: + { + param = VALETON_PARAM_DLY_PARAM_5; + } break; + + case 84: + { + param = VALETON_PARAM_DLY_PARAM_6; + } break; + + case 85: + { + param = VALETON_PARAM_DLY_PARAM_7; + } break; + + case 86: + { + param = VALETON_PARAM_RVB_PARAM_0; + } break; + + case 87: + { + param = VALETON_PARAM_RVB_PARAM_1; + } break; + + case 88: + { + param = VALETON_PARAM_RVB_PARAM_2; + } break; + + case 89: + { + param = VALETON_PARAM_RVB_PARAM_3; + } break; + + case 90: + { + param = VALETON_PARAM_RVB_PARAM_4; + } break; + + case 91: + { + param = VALETON_PARAM_RVB_PARAM_5; + } break; + + case 92: + { + param = VALETON_PARAM_RVB_PARAM_6; + } break; + + case 93: + { + param = VALETON_PARAM_RVB_PARAM_7; + } break; + + case 94: + { + param = VALETON_PARAM_NS_PARAM_0; + } break; + + case 95: + { + param = VALETON_PARAM_NS_PARAM_1; + } break; + + case 96: + { + param = VALETON_PARAM_NS_PARAM_2; + } break; + + case 97: + { + param = VALETON_PARAM_NS_PARAM_3; + } break; + + case 98: + { + param = VALETON_PARAM_NS_PARAM_4; + } break; + + case 99: + { + param = VALETON_PARAM_NS_PARAM_5; + } break; + + case 100: + { + param = VALETON_PARAM_NS_PARAM_6; + } break; + + case 101: + { + param = VALETON_PARAM_NS_PARAM_7; + } break; + + // gap for expansion + + case 116: + { + // preset down + control_request_preset_down(); + + // don't set any return param, as this one is already handled and its not a parameter } break; - case 120: + case 117: { + // preset up + control_request_preset_up(); + // don't set any return param, as this one is already handled and its not a parameter } break; - case 121: + case 118: { + // bpm + param = VALETON_GLOBAL_BPM; + } break; + case 119: + { + // BPM + param = VALETON_GLOBAL_BPM; + } break; + + case 120: + { + // input trim + param = VALETON_GLOBAL_INPUT_TRIM; } break; + case 121: + { + param = VALETON_GLOBAL_CABSIM_BYPASS; + } break; + case 122: { param = VALETON_GLOBAL_MASTER_VOLUME; } break; + case 123: + { + param = VALETON_GLOBAL_RECORD_LEVEL; + } break; + + case 124: + { + param = VALETON_GLOBAL_MONITOR_LEVEL; + } break; + + case 125: + { + param = VALETON_GLOBAL_BT_LEVEL; + } break; + + //126 + case 127: { uint32_t new_preset; diff --git a/source/main/tonex_params.h b/source/main/tonex_params.h index 70d854b0..d6206416 100644 --- a/source/main/tonex_params.h +++ b/source/main/tonex_params.h @@ -197,9 +197,6 @@ enum TonexParameters TONEX_GLOBAL_LAST }; -// special cases for handling effect switches that use Midi but don't change a parameter -#define TONEX_UNKNOWN 0xFFFF - typedef struct { uint8_t red; diff --git a/source/main/usb_valeton_gp5.c b/source/main/usb_valeton_gp5.c index 2edf4018..fde50f48 100644 --- a/source/main/usb_valeton_gp5.c +++ b/source/main/usb_valeton_gp5.c @@ -963,8 +963,11 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 } // debug - valeton_dump_parameters(); + //valeton_dump_parameters(); + // set param ranges + valeton_params_set_min_max(); + // signal to refresh param UI UI_RefreshParameterValues(); @@ -1200,6 +1203,8 @@ static uint8_t usb_valeton_gp5_process_single_sysex(const uint8_t* buffer, uint3 // change that will overwrite this one. Skip the UI refresh to save time if (uxQueueMessagesWaiting(input_queue) == 0) { + valeton_params_set_min_max(); + // signal to refresh param UI UI_RefreshParameterValues(); @@ -1841,12 +1846,6 @@ static esp_err_t usb_valeton_gp5_send_single_parameter(uint16_t index, float val if (uxQueueMessagesWaiting(input_queue) == 0) { usb_valeton_gp5_request_preset_params(); - - // signal to refresh param UI - //UI_RefreshParameterValues(); - - // update web UI - //wifi_request_sync(WIFI_SYNC_TYPE_PARAMS, NULL, NULL); } res = ESP_OK; diff --git a/source/main/valeton_params.c b/source/main/valeton_params.c index e5124172..e44eca15 100644 --- a/source/main/valeton_params.c +++ b/source/main/valeton_params.c @@ -303,6 +303,787 @@ float valeton_params_clamp_value(uint16_t param_index, float value) return 0; } +/**************************************************************************** +* NAME: +* DESCRIPTION: +* PARAMETERS: +* RETURN: +* NOTES: +*****************************************************************************/ +void valeton_params_set_min_max(void) +{ + tModellerParameter* param_ptr; + + if (valeton_params_get_locked_access(¶m_ptr) == ESP_OK) + { + // NR + switch ((int)param_ptr[VALETON_PARAM_NR_TYPE].Value) + { + case VALETON_EFFECT_NR_GATE: + { + param_ptr[VALETON_PARAM_NR_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_NR_PARAM_0].Max = 100; + } break; + } + + // Pre + switch ((int)param_ptr[VALETON_PARAM_PRE_TYPE].Value) + { + case VALETON_EFFECT_PRE_COMP: + { + param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_PRE_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_1].Max = 100; + } break; + + case VALETON_EFFECT_PRE_COMP4: + { + param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_PRE_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_1].Max = 100; + + param_ptr[VALETON_PARAM_PRE_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_2].Max = 100; + + param_ptr[VALETON_PARAM_PRE_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_3].Max = 100; + } break; + + case VALETON_EFFECT_PRE_BOOST: + { + param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 100; + } break; + + case VALETON_EFFECT_PRE_MICRO_BOOST: + { + param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 100; + + } break; + + case VALETON_EFFECT_PRE_B_BOOST: + { + param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_PRE_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_1].Max = 100; + + param_ptr[VALETON_PARAM_PRE_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_2].Max = 100; + + param_ptr[VALETON_PARAM_PRE_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_3].Max = 100; + + } break; + + case VALETON_EFFECT_PRE_TOUCHER: + { + param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_PRE_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_1].Max = 100; + + param_ptr[VALETON_PARAM_PRE_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_2].Max = 100; + + param_ptr[VALETON_PARAM_PRE_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_3].Max = 100; + + } break; + + case VALETON_EFFECT_PRE_CRIER: + { + param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_PRE_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_1].Max = 10; + + param_ptr[VALETON_PARAM_PRE_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_2].Max = 100; + + param_ptr[VALETON_PARAM_PRE_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_3].Max = 100; + + param_ptr[VALETON_PARAM_PRE_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_4].Max = 100; + + //todo one more slider + } break; + + case VALETON_EFFECT_PRE_OCTA: + { + param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_PRE_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_1].Max = 100; + + param_ptr[VALETON_PARAM_PRE_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_2].Max = 100; + + } break; + + case VALETON_EFFECT_PRE_PITCH: + { + param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 24; + + param_ptr[VALETON_PARAM_PRE_PARAM_1].Min = -24; + param_ptr[VALETON_PARAM_PRE_PARAM_1].Max = 0; + + param_ptr[VALETON_PARAM_PRE_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_2].Max = 100; + + param_ptr[VALETON_PARAM_PRE_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_3].Max = 100; + + param_ptr[VALETON_PARAM_PRE_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_4].Max = 100; + } break; + + case VALETON_EFFECT_PRE_DETUNE: + { + param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = -50; + param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 50; + + param_ptr[VALETON_PARAM_PRE_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_1].Max = 100; + + param_ptr[VALETON_PARAM_PRE_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_2].Max = 100; + + } break; + } + + // Dist + switch ((int)param_ptr[VALETON_PARAM_DIST_TYPE].Value) + { + case VALETON_EFFECT_DIST_GREEN_OD: // fallthrough + case VALETON_EFFECT_DIST_SUPER_OD: // fallthrough + case VALETON_EFFECT_DIST_SM_DIST: // fallthrough + case VALETON_EFFECT_DIST_LA_CHARGER: + { + param_ptr[VALETON_PARAM_DIST_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_DIST_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_1].Max = 100; + + param_ptr[VALETON_PARAM_DIST_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_2].Max = 100; + + } break; + + case VALETON_EFFECT_DIST_YELLOW_OD: // fallthrough + case VALETON_EFFECT_DIST_PLUSTORTION: + { + param_ptr[VALETON_PARAM_DIST_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_DIST_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_1].Max = 100; + + } break; + + case VALETON_EFFECT_DIST_DARKTALE: + { + param_ptr[VALETON_PARAM_DIST_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_DIST_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_1].Max = 100; + + param_ptr[VALETON_PARAM_DIST_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_2].Max = 100; + + } break; + + case VALETON_EFFECT_DIST_SORA_FUZZ: // fallthrough + case VALETON_EFFECT_DIST_RED_HAZE: + { + param_ptr[VALETON_PARAM_DIST_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_DIST_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_1].Max = 100; + + } break; + + case VALETON_EFFECT_DIST_BASS_OD: + { + param_ptr[VALETON_PARAM_DIST_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_DIST_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_1].Max = 100; + + param_ptr[VALETON_PARAM_DIST_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_2].Max = 100; + + param_ptr[VALETON_PARAM_DIST_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_3].Max = 100; + + param_ptr[VALETON_PARAM_DIST_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_DIST_PARAM_4].Max = 100; + } break; + } + + // Amp + switch ((int)param_ptr[VALETON_PARAM_AMP_TYPE].Value) + { + case VALETON_EFFECT_AMP_TWEEDY: + { + param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + } break; + + case VALETON_EFFECT_AMP_BELLMAN_59N: // fallthrough + case VALETON_EFFECT_AMP_MATCH_CL: // fallthrough + case VALETON_EFFECT_AMP_L_STAR_CL: // fallthrough + case VALETON_EFFECT_AMP_UK_45: // fallthough + case VALETON_EFFECT_AMP_UK_800: // fallthrough + case VALETON_EFFECT_AMP_BELLMAN_59B: // fallthough + case VALETON_EFFECT_AMP_SOLO100_OD: // fallthrough + case VALETON_EFFECT_AMP_BAD_KT_OD: // fallthough + case VALETON_EFFECT_AMP_DIZZ_VH: // fallthrough + case VALETON_EFFECT_AMP_DIZZ_VH_PLUS: // fallthrough + case VALETON_EFFECT_AMP_EAGLE_120: // fallthrough + case VALETON_EFFECT_AMP_SOLO100_LD: // fallthrough + case VALETON_EFFECT_AMP_MESS_DUALV: // fallthrough + case VALETON_EFFECT_AMP_MESS_DUALM: // fallthrough + case VALETON_EFFECT_AMP_POWER_LD: // fallthrough + case VALETON_EFFECT_AMP_FLAGMAN_PLUS: // fallthrough + case VALETON_EFFECT_AMP_BOG_REDV: + { + param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_5].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_5].Max = 100; + } break; + + case VALETON_EFFECT_AMP_DARK_TWIN: + case VALETON_EFFECT_AMP_JUICE_R100: + { + param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; + + } break; + + case VALETON_EFFECT_AMP_FOXY_30N: + { + param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + + } break; + + case VALETON_EFFECT_AMP_J_120_CL: + { + param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + + + } break; + + case VALETON_EFFECT_AMP_UK_50JP: + { + param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; + + } break; + + case VALETON_EFFECT_AMP_FOXY_30TB: + { + param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; + + } break; + + case VALETON_EFFECT_AMP_SUPDUAL_OD: + { + param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; + } break; + + case VALETON_EFFECT_AMP_Z38_OD: + { + param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; + + } break; + + case VALETON_EFFECT_AMP_EV_51: + { + param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; + + } break; + + case VALETON_EFFECT_AMP_CLASSIC_BASS: + { + param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; + } break; + + case VALETON_EFFECT_AMP_FOXY_BASS: + { + param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + + + } break; + + case VALETON_EFFECT_AMP_MESS_BASS: + { + param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; + } break; + + case VALETON_EFFECT_AMP_AC_PRE1: // fallthrough + case VALETON_EFFECT_AMP_AC_PRE2: + { + param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + + param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; + } break; + } + + // Cab + // all cabs have volume only + param_ptr[VALETON_PARAM_CAB_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_CAB_PARAM_0].Max = 100; + + // EQ + // all have same range + param_ptr[VALETON_PARAM_EQ_PARAM_0].Min = -50; + param_ptr[VALETON_PARAM_EQ_PARAM_0].Max = 50; + + param_ptr[VALETON_PARAM_EQ_PARAM_1].Min = -50; + param_ptr[VALETON_PARAM_EQ_PARAM_1].Max = 50; + + param_ptr[VALETON_PARAM_EQ_PARAM_2].Min = -50; + param_ptr[VALETON_PARAM_EQ_PARAM_2].Max = 50; + + param_ptr[VALETON_PARAM_EQ_PARAM_3].Min = -50; + param_ptr[VALETON_PARAM_EQ_PARAM_3].Max = 50; + + param_ptr[VALETON_PARAM_EQ_PARAM_4].Min = -50; + param_ptr[VALETON_PARAM_EQ_PARAM_4].Max = 50; + + // Mod + switch ((int)param_ptr[VALETON_PARAM_MOD_TYPE].Value) + { + case VALETON_EFFECT_MOD_A_CHORUS: // fallthrough + case VALETON_EFFECT_MOD_B_CHORUS: + { + param_ptr[VALETON_PARAM_MOD_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_MOD_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_1].Max = 10; + + param_ptr[VALETON_PARAM_MOD_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_2].Max = 100; + + } break; + + case VALETON_EFFECT_MOD_JET: // Fallthrough + case VALETON_EFFECT_MOD_N_JET: + { + param_ptr[VALETON_PARAM_MOD_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_MOD_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_1].Max = 10; + + param_ptr[VALETON_PARAM_MOD_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_2].Max = 100; + + param_ptr[VALETON_PARAM_MOD_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_3].Max = 100; + } break; + + case VALETON_EFFECT_MOD_O_PHASE: + { + param_ptr[VALETON_PARAM_MOD_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_0].Max = 10; + } break; + + case VALETON_EFFECT_MOD_M_VIBE: // fallthrough + case VALETON_EFFECT_MOD_V_ROTO: // fallthrough + case VALETON_EFFECT_MOD_O_TREM: + { + param_ptr[VALETON_PARAM_MOD_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_MOD_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_1].Max = 10; + + } break; + + case VALETON_EFFECT_MOD_VIBRATO: // fallthrough + case VALETON_EFFECT_MOD_SINE_TREM: + { + param_ptr[VALETON_PARAM_MOD_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_MOD_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_1].Max = 10; + + param_ptr[VALETON_PARAM_MOD_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_2].Max = 100; + } break; + + case VALETON_EFFECT_MOD_BIAS_TREM: + { + param_ptr[VALETON_PARAM_MOD_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_MOD_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_1].Max = 10; + + param_ptr[VALETON_PARAM_MOD_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_2].Max = 100; + + param_ptr[VALETON_PARAM_MOD_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_MOD_PARAM_3].Max = 100; + } break; + } + + // Delay + switch ((int)param_ptr[VALETON_PARAM_DLY_TYPE].Value) + { + case VALETON_EFFECT_DLY_PURE: // fallthrough + case VALETON_EFFECT_DLY_SWEET_ECHO: // fallthrough + case VALETON_EFFECT_DLY_TAPE: // fallthrough + case VALETON_EFFECT_DLY_TUBE: + { + param_ptr[VALETON_PARAM_DLY_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_DLY_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_1].Max = 1000; + + param_ptr[VALETON_PARAM_DLY_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_2].Max = 100; + + } break; + + case VALETON_EFFECT_DLY_ANALOG: + { + param_ptr[VALETON_PARAM_DLY_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_DLY_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_1].Max = 4000; + + param_ptr[VALETON_PARAM_DLY_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_2].Max = 100; + + } break; + + case VALETON_EFFECT_DLY_SLAPBACK: + { + param_ptr[VALETON_PARAM_DLY_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_DLY_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_1].Max = 300; + + param_ptr[VALETON_PARAM_DLY_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_2].Max = 100; + + } break; + + case VALETON_EFFECT_DLY_REV_ECHO: + { + param_ptr[VALETON_PARAM_DLY_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_DLY_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_1].Max = 780; + + param_ptr[VALETON_PARAM_DLY_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_2].Max = 100; + + } break; + + case VALETON_EFFECT_DLY_PING_PONG: + { + param_ptr[VALETON_PARAM_DLY_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_DLY_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_1].Max = 500; + + param_ptr[VALETON_PARAM_DLY_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_2].Max = 100; + + } break; + + case VALETON_EFFECT_DLY_RING_ECHO: + { + param_ptr[VALETON_PARAM_DLY_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_DLY_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_1].Max = 1000; + + param_ptr[VALETON_PARAM_DLY_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_2].Max = 100; + + param_ptr[VALETON_PARAM_DLY_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_3].Max = 100; + + param_ptr[VALETON_PARAM_DLY_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_4].Max = 100; + + } break; + + case VALETON_EFFECT_DLY_SWEEP_ECHO: + { + param_ptr[VALETON_PARAM_DLY_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_DLY_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_1].Max = 1000; + + param_ptr[VALETON_PARAM_DLY_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_2].Max = 100; + + param_ptr[VALETON_PARAM_DLY_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_3].Max = 100; + + param_ptr[VALETON_PARAM_DLY_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_4].Max = 100; + } break; + } + + // Reverb + switch ((int)param_ptr[VALETON_PARAM_RVB_TYPE].Value) + { + case VALETON_EFFECT_RVB_AIR: // fallthrough + case VALETON_EFFECT_RVB_PLATE: + { + param_ptr[VALETON_PARAM_RVB_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_RVB_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_RVB_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_RVB_PARAM_1].Max = 100; + + param_ptr[VALETON_PARAM_RVB_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_RVB_PARAM_2].Max = 100; + + } break; + + case VALETON_EFFECT_RVB_ROOM: // fallthrough + case VALETON_EFFECT_RVB_HALL: // fallthrough + case VALETON_EFFECT_RVB_CHURCH: // fallthrough + case VALETON_EFFECT_RVB_PLATE_L: // fallthrough + case VALETON_EFFECT_RVB_SPRING: // fallthrough + case VALETON_EFFECT_RVB_N_STAR: // fallthrough + case VALETON_EFFECT_RVB_DEEPSEA: + { + param_ptr[VALETON_PARAM_RVB_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_RVB_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_RVB_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_RVB_PARAM_1].Max = 100; + + } break; + + case VALETON_EFFECT_RVB_SWEET_SPACE: + { + param_ptr[VALETON_PARAM_RVB_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_RVB_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_RVB_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_RVB_PARAM_1].Max = 100; + + param_ptr[VALETON_PARAM_RVB_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_RVB_PARAM_2].Max = 100; + + param_ptr[VALETON_PARAM_RVB_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_RVB_PARAM_3].Max = 100; + + } break; + } + + // NS + // all models have same params + param_ptr[VALETON_PARAM_NS_PARAM_0].Min = 0; + param_ptr[VALETON_PARAM_NS_PARAM_0].Max = 100; + + param_ptr[VALETON_PARAM_NS_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_NS_PARAM_1].Max = 100; + + param_ptr[VALETON_PARAM_NS_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_NS_PARAM_2].Max = 100; + + param_ptr[VALETON_PARAM_NS_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_NS_PARAM_3].Max = 100; + + param_ptr[VALETON_PARAM_NS_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_NS_PARAM_4].Max = 100; + + valeton_params_release_locked_access(); + } +} + /**************************************************************************** * NAME: * DESCRIPTION: diff --git a/source/main/valeton_params.h b/source/main/valeton_params.h index e582bf27..46f10710 100644 --- a/source/main/valeton_params.h +++ b/source/main/valeton_params.h @@ -356,6 +356,7 @@ esp_err_t valeton_params_release_locked_access(void); esp_err_t valeton_params_get_min_max(uint16_t param_index, float* min, float* max); esp_err_t valeton_dump_parameters(void); float valeton_params_clamp_value(uint16_t param_index, float value); +void valeton_params_set_min_max(void); #ifdef __cplusplus } /*extern "C"*/ From 1eaa65adbe1a9ad9f3a6c604d68cde152c06911e Mon Sep 17 00:00:00 2001 From: Greg Smith Date: Mon, 17 Nov 2025 20:09:30 +1100 Subject: [PATCH 19/34] - Fixed some GP5 param init bugs --- source/main/display_valeton.c | 43 +++--- source/main/valeton_params.c | 276 ++++++++++++++++++++++++++++++++-- 2 files changed, 283 insertions(+), 36 deletions(-) diff --git a/source/main/display_valeton.c b/source/main/display_valeton.c index 700b34fa..5d43d0d8 100644 --- a/source/main/display_valeton.c +++ b/source/main/display_valeton.c @@ -955,12 +955,12 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); - lv_label_set_text(objects.ui_val_pre_param1_label, "Volume"); + lv_label_set_text(objects.ui_val_pre_param2_label, "Volume"); lv_obj_clear_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param3_value, LV_OBJ_FLAG_HIDDEN); - lv_label_set_text(objects.ui_val_pre_param1_label, "Clip"); + lv_label_set_text(objects.ui_val_pre_param3_label, "Clip"); lv_obj_add_flag(objects.ui_val_pre_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_pre_param4_slider, LV_OBJ_FLAG_HIDDEN); @@ -1032,12 +1032,12 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); - lv_label_set_text(objects.ui_val_pre_param1_label, "Bass"); + lv_label_set_text(objects.ui_val_pre_param2_label, "Bass"); lv_obj_clear_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param3_value, LV_OBJ_FLAG_HIDDEN); - lv_label_set_text(objects.ui_val_pre_param1_label, "Treble"); + lv_label_set_text(objects.ui_val_pre_param3_label, "Treble"); lv_obj_add_flag(objects.ui_val_pre_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_pre_param4_slider, LV_OBJ_FLAG_HIDDEN); @@ -1059,12 +1059,12 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); - lv_label_set_text(objects.ui_val_pre_param1_label, "Q"); + lv_label_set_text(objects.ui_val_pre_param2_label, "Q"); lv_obj_clear_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param3_value, LV_OBJ_FLAG_HIDDEN); - lv_label_set_text(objects.ui_val_pre_param1_label, "Mix"); + lv_label_set_text(objects.ui_val_pre_param3_label, "Mix"); // todo switch here @@ -1088,17 +1088,17 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_pre_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param2_value, LV_OBJ_FLAG_HIDDEN); - lv_label_set_text(objects.ui_val_pre_param1_label, "Volume"); + lv_label_set_text(objects.ui_val_pre_param2_label, "Volume"); lv_obj_clear_flag(objects.ui_val_pre_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param3_value, LV_OBJ_FLAG_HIDDEN); - lv_label_set_text(objects.ui_val_pre_param1_label, "Low"); + lv_label_set_text(objects.ui_val_pre_param3_label, "Low"); lv_obj_clear_flag(objects.ui_val_pre_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param4_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_pre_param4_value, LV_OBJ_FLAG_HIDDEN); - lv_label_set_text(objects.ui_val_pre_param1_label, "Q"); + lv_label_set_text(objects.ui_val_pre_param4_label, "Q"); //todo one more slider } break; @@ -1573,6 +1573,8 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param2_label, "Volume"); + + //todo bright switch lv_obj_add_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); @@ -1581,8 +1583,6 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_add_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); - - //todo tone cut switch } break; case VALETON_EFFECT_AMP_J_120_CL: @@ -1607,11 +1607,11 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param3_label, "Treble"); + //todo bright switch + lv_obj_add_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); - lv_obj_add_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); - - //todo bright switch + lv_obj_add_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); } break; case VALETON_EFFECT_AMP_UK_50JP: @@ -1778,18 +1778,18 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_amp_param2_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param2_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param2_label, "Middle"); - - //todo: middle freq lv_obj_clear_flag(objects.ui_val_amp_param3_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param3_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); - lv_label_set_text(objects.ui_val_amp_param3_label, "Treble"); + lv_label_set_text(objects.ui_val_amp_param3_label, "Mid Freq"); lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); - lv_label_set_text(objects.ui_val_amp_param4_label, "Volume"); + lv_label_set_text(objects.ui_val_amp_param4_label, "Treble"); + + //todo vol } break; case VALETON_EFFECT_AMP_FOXY_BASS: @@ -1870,12 +1870,12 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_amp_param3_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_amp_param3_label, "EQ Freq"); - // todo: EQ Q - lv_obj_clear_flag(objects.ui_val_amp_param4_label, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param4_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_amp_param4_value, LV_OBJ_FLAG_HIDDEN); - lv_label_set_text(objects.ui_val_amp_param4_label, "EQ Gain"); + lv_label_set_text(objects.ui_val_amp_param4_label, "EQ Q"); + + //todo : EQ gain } break; } } break; @@ -2344,7 +2344,6 @@ uint8_t valeton_update_ui_parameters(void) lv_obj_clear_flag(objects.ui_val_mod_param1_slider, LV_OBJ_FLAG_HIDDEN); lv_obj_clear_flag(objects.ui_val_mod_param1_value, LV_OBJ_FLAG_HIDDEN); lv_label_set_text(objects.ui_val_mod_param1_label, "Rate"); - lv_slider_set_range(objects.ui_val_mod_param1_slider, 0, 10); lv_obj_add_flag(objects.ui_val_mod_param2_label, LV_OBJ_FLAG_HIDDEN); lv_obj_add_flag(objects.ui_val_mod_param2_slider, LV_OBJ_FLAG_HIDDEN); diff --git a/source/main/valeton_params.c b/source/main/valeton_params.c index e44eca15..bd2441cf 100644 --- a/source/main/valeton_params.c +++ b/source/main/valeton_params.c @@ -321,6 +321,7 @@ void valeton_params_set_min_max(void) { case VALETON_EFFECT_NR_GATE: { + // threshold param_ptr[VALETON_PARAM_NR_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_NR_PARAM_0].Max = 100; } break; @@ -331,135 +332,176 @@ void valeton_params_set_min_max(void) { case VALETON_EFFECT_PRE_COMP: { + // sustain param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 100; + // volume param_ptr[VALETON_PARAM_PRE_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_PRE_PARAM_1].Max = 100; } break; case VALETON_EFFECT_PRE_COMP4: { + // sustain param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 100; + // attack param_ptr[VALETON_PARAM_PRE_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_PRE_PARAM_1].Max = 100; + // vol param_ptr[VALETON_PARAM_PRE_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_PRE_PARAM_2].Max = 100; + // clip param_ptr[VALETON_PARAM_PRE_PARAM_3].Min = 0; param_ptr[VALETON_PARAM_PRE_PARAM_3].Max = 100; } break; case VALETON_EFFECT_PRE_BOOST: { + // gain param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 100; + + // +3db + param_ptr[VALETON_PARAM_PRE_PARAM_1].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_1].Max = 1; + + // bright + param_ptr[VALETON_PARAM_PRE_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_2].Max = 1; } break; case VALETON_EFFECT_PRE_MICRO_BOOST: { + // gain param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = 0; - param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 100; - + param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 100; } break; case VALETON_EFFECT_PRE_B_BOOST: { + // gain param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 100; + // vol param_ptr[VALETON_PARAM_PRE_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_PRE_PARAM_1].Max = 100; + // bass param_ptr[VALETON_PARAM_PRE_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_PRE_PARAM_2].Max = 100; + // treble param_ptr[VALETON_PARAM_PRE_PARAM_3].Min = 0; param_ptr[VALETON_PARAM_PRE_PARAM_3].Max = 100; - } break; case VALETON_EFFECT_PRE_TOUCHER: { + // sense param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 100; + // range param_ptr[VALETON_PARAM_PRE_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_PRE_PARAM_1].Max = 100; + // Q param_ptr[VALETON_PARAM_PRE_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_PRE_PARAM_2].Max = 100; + // mix param_ptr[VALETON_PARAM_PRE_PARAM_3].Min = 0; param_ptr[VALETON_PARAM_PRE_PARAM_3].Max = 100; + // mode + param_ptr[VALETON_PARAM_PRE_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_4].Max = 1; } break; case VALETON_EFFECT_PRE_CRIER: { + // depth param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 100; + // rate param_ptr[VALETON_PARAM_PRE_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_PRE_PARAM_1].Max = 10; + // vol param_ptr[VALETON_PARAM_PRE_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_PRE_PARAM_2].Max = 100; + // low param_ptr[VALETON_PARAM_PRE_PARAM_3].Min = 0; param_ptr[VALETON_PARAM_PRE_PARAM_3].Max = 100; + // Q param_ptr[VALETON_PARAM_PRE_PARAM_4].Min = 0; param_ptr[VALETON_PARAM_PRE_PARAM_4].Max = 100; - //todo one more slider + // High + param_ptr[VALETON_PARAM_PRE_PARAM_5].Min = 0; + param_ptr[VALETON_PARAM_PRE_PARAM_5].Max = 100; } break; case VALETON_EFFECT_PRE_OCTA: { + // Low param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 100; + // high param_ptr[VALETON_PARAM_PRE_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_PRE_PARAM_1].Max = 100; + // Dry param_ptr[VALETON_PARAM_PRE_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_PRE_PARAM_2].Max = 100; - } break; case VALETON_EFFECT_PRE_PITCH: { + // High param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 24; + // Low param_ptr[VALETON_PARAM_PRE_PARAM_1].Min = -24; param_ptr[VALETON_PARAM_PRE_PARAM_1].Max = 0; + // Dry param_ptr[VALETON_PARAM_PRE_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_PRE_PARAM_2].Max = 100; + // H-Vol param_ptr[VALETON_PARAM_PRE_PARAM_3].Min = 0; param_ptr[VALETON_PARAM_PRE_PARAM_3].Max = 100; + // L-Vol param_ptr[VALETON_PARAM_PRE_PARAM_4].Min = 0; param_ptr[VALETON_PARAM_PRE_PARAM_4].Max = 100; } break; case VALETON_EFFECT_PRE_DETUNE: { + // Detune param_ptr[VALETON_PARAM_PRE_PARAM_0].Min = -50; param_ptr[VALETON_PARAM_PRE_PARAM_0].Max = 50; + // Wet param_ptr[VALETON_PARAM_PRE_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_PRE_PARAM_1].Max = 100; + // Dry param_ptr[VALETON_PARAM_PRE_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_PRE_PARAM_2].Max = 100; - } break; } @@ -471,66 +513,77 @@ void valeton_params_set_min_max(void) case VALETON_EFFECT_DIST_SM_DIST: // fallthrough case VALETON_EFFECT_DIST_LA_CHARGER: { + // Gain param_ptr[VALETON_PARAM_DIST_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_DIST_PARAM_0].Max = 100; + // Tone param_ptr[VALETON_PARAM_DIST_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_DIST_PARAM_1].Max = 100; + // Vol param_ptr[VALETON_PARAM_DIST_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_DIST_PARAM_2].Max = 100; - } break; case VALETON_EFFECT_DIST_YELLOW_OD: // fallthrough case VALETON_EFFECT_DIST_PLUSTORTION: { + // Gain param_ptr[VALETON_PARAM_DIST_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_DIST_PARAM_0].Max = 100; + // Vol param_ptr[VALETON_PARAM_DIST_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_DIST_PARAM_1].Max = 100; - } break; case VALETON_EFFECT_DIST_DARKTALE: { + // Gain param_ptr[VALETON_PARAM_DIST_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_DIST_PARAM_0].Max = 100; + // Filter param_ptr[VALETON_PARAM_DIST_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_DIST_PARAM_1].Max = 100; + // Vol param_ptr[VALETON_PARAM_DIST_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_DIST_PARAM_2].Max = 100; - } break; case VALETON_EFFECT_DIST_SORA_FUZZ: // fallthrough case VALETON_EFFECT_DIST_RED_HAZE: { + // Fuzz param_ptr[VALETON_PARAM_DIST_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_DIST_PARAM_0].Max = 100; + // Vol param_ptr[VALETON_PARAM_DIST_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_DIST_PARAM_1].Max = 100; - } break; case VALETON_EFFECT_DIST_BASS_OD: { + // Gain param_ptr[VALETON_PARAM_DIST_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_DIST_PARAM_0].Max = 100; + // Blend param_ptr[VALETON_PARAM_DIST_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_DIST_PARAM_1].Max = 100; + // Vol param_ptr[VALETON_PARAM_DIST_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_DIST_PARAM_2].Max = 100; + // Bass param_ptr[VALETON_PARAM_DIST_PARAM_3].Min = 0; param_ptr[VALETON_PARAM_DIST_PARAM_3].Max = 100; + // Treble param_ptr[VALETON_PARAM_DIST_PARAM_4].Min = 0; param_ptr[VALETON_PARAM_DIST_PARAM_4].Max = 100; } break; @@ -541,12 +594,15 @@ void valeton_params_set_min_max(void) { case VALETON_EFFECT_AMP_TWEEDY: { + // Gain param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + // Tone param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + // Vol param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; } break; @@ -569,21 +625,27 @@ void valeton_params_set_min_max(void) case VALETON_EFFECT_AMP_FLAGMAN_PLUS: // fallthrough case VALETON_EFFECT_AMP_BOG_REDV: { + // Gain param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + // Pres param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + // Vol param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + // Bass param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + // Middle param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; + // Treble param_ptr[VALETON_PARAM_AMP_PARAM_5].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_5].Max = 100; } break; @@ -591,193 +653,269 @@ void valeton_params_set_min_max(void) case VALETON_EFFECT_AMP_DARK_TWIN: case VALETON_EFFECT_AMP_JUICE_R100: { + // Gain param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + // Vol param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + // Bass param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + // Middle param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + // Treble param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; + // Bright + param_ptr[VALETON_PARAM_AMP_PARAM_5].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_5].Max = 1; } break; case VALETON_EFFECT_AMP_FOXY_30N: { + // Gain param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + // Tone Cut param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + // Vol param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + // Bright + param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 1; } break; case VALETON_EFFECT_AMP_J_120_CL: { + // Vol param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + // Bass param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + // Middle param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + // Treble param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; - + // Bright + param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 1; } break; case VALETON_EFFECT_AMP_UK_50JP: { + // Gain 1 param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + // Pres param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + // Vol param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + // Bass param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + // Middle param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; + // Treble + param_ptr[VALETON_PARAM_AMP_PARAM_5].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_5].Max = 100; + + // Gain 2 + param_ptr[VALETON_PARAM_AMP_PARAM_6].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_6].Max = 100; } break; case VALETON_EFFECT_AMP_FOXY_30TB: { + // Gain param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + // Tone Cut param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + // Vol param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + // Bass param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + // Treble param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; + // Character + param_ptr[VALETON_PARAM_AMP_PARAM_5].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_5].Max = 1; } break; case VALETON_EFFECT_AMP_SUPDUAL_OD: { + // Gain 1 param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + // Tone 1 param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + // Gain 2 param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + // Tone 2 param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + // Vol param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; } break; case VALETON_EFFECT_AMP_Z38_OD: { + // Gain param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + // Tone Cut param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + // Vol param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + // Bass param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + // Middle param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; + // Treble + param_ptr[VALETON_PARAM_AMP_PARAM_5].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_5].Max = 100; } break; case VALETON_EFFECT_AMP_EV_51: { + // Gain param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + // Vol param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + // Bass param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + // Middle param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + // Treble param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; + // Pres + param_ptr[VALETON_PARAM_AMP_PARAM_5].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_5].Max = 100; } break; case VALETON_EFFECT_AMP_CLASSIC_BASS: { + // Gain param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + // Bass param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + // Middle param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + // Mid freq param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; - param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 4; + // Treble param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; + + // Vol + param_ptr[VALETON_PARAM_AMP_PARAM_5].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_5].Max = 100; } break; case VALETON_EFFECT_AMP_FOXY_BASS: { + // Vol param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + // Bass param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + // Treble param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; - - } break; case VALETON_EFFECT_AMP_MESS_BASS: { + // Gain param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + // Vol param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + // Bass param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + // Middle param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + // Treble param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; } break; @@ -785,57 +923,79 @@ void valeton_params_set_min_max(void) case VALETON_EFFECT_AMP_AC_PRE1: // fallthrough case VALETON_EFFECT_AMP_AC_PRE2: { + // Vol param_ptr[VALETON_PARAM_AMP_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_0].Max = 100; + // Tone param_ptr[VALETON_PARAM_AMP_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_1].Max = 100; + // Balance param_ptr[VALETON_PARAM_AMP_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_2].Max = 100; + // EQ Freq param_ptr[VALETON_PARAM_AMP_PARAM_3].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_3].Max = 100; + // EQ Q param_ptr[VALETON_PARAM_AMP_PARAM_4].Min = 0; param_ptr[VALETON_PARAM_AMP_PARAM_4].Max = 100; + + // EQ Gain + param_ptr[VALETON_PARAM_AMP_PARAM_5].Min = 0; + param_ptr[VALETON_PARAM_AMP_PARAM_5].Max = 100; } break; } // Cab // all cabs have volume only + // Vol param_ptr[VALETON_PARAM_CAB_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_CAB_PARAM_0].Max = 100; // EQ // all have same range + // band 1 param_ptr[VALETON_PARAM_EQ_PARAM_0].Min = -50; param_ptr[VALETON_PARAM_EQ_PARAM_0].Max = 50; + // band 2 param_ptr[VALETON_PARAM_EQ_PARAM_1].Min = -50; param_ptr[VALETON_PARAM_EQ_PARAM_1].Max = 50; + // band 3 param_ptr[VALETON_PARAM_EQ_PARAM_2].Min = -50; param_ptr[VALETON_PARAM_EQ_PARAM_2].Max = 50; + // band 4 param_ptr[VALETON_PARAM_EQ_PARAM_3].Min = -50; param_ptr[VALETON_PARAM_EQ_PARAM_3].Max = 50; + // band 5 param_ptr[VALETON_PARAM_EQ_PARAM_4].Min = -50; param_ptr[VALETON_PARAM_EQ_PARAM_4].Max = 50; + // Vol + param_ptr[VALETON_PARAM_EQ_PARAM_5].Min = 0; + param_ptr[VALETON_PARAM_EQ_PARAM_5].Max = 100; + // Mod switch ((int)param_ptr[VALETON_PARAM_MOD_TYPE].Value) { case VALETON_EFFECT_MOD_A_CHORUS: // fallthrough case VALETON_EFFECT_MOD_B_CHORUS: { + // Depth param_ptr[VALETON_PARAM_MOD_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_MOD_PARAM_0].Max = 100; + // Rate param_ptr[VALETON_PARAM_MOD_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_MOD_PARAM_1].Max = 10; + // Tone param_ptr[VALETON_PARAM_MOD_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_MOD_PARAM_2].Max = 100; @@ -844,21 +1004,26 @@ void valeton_params_set_min_max(void) case VALETON_EFFECT_MOD_JET: // Fallthrough case VALETON_EFFECT_MOD_N_JET: { + // Depth param_ptr[VALETON_PARAM_MOD_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_MOD_PARAM_0].Max = 100; + // Rate param_ptr[VALETON_PARAM_MOD_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_MOD_PARAM_1].Max = 10; + // P.Delay param_ptr[VALETON_PARAM_MOD_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_MOD_PARAM_2].Max = 100; + // F.Back param_ptr[VALETON_PARAM_MOD_PARAM_3].Min = 0; param_ptr[VALETON_PARAM_MOD_PARAM_3].Max = 100; } break; case VALETON_EFFECT_MOD_O_PHASE: { + // Rate param_ptr[VALETON_PARAM_MOD_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_MOD_PARAM_0].Max = 10; } break; @@ -867,9 +1032,11 @@ void valeton_params_set_min_max(void) case VALETON_EFFECT_MOD_V_ROTO: // fallthrough case VALETON_EFFECT_MOD_O_TREM: { + // Depth param_ptr[VALETON_PARAM_MOD_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_MOD_PARAM_0].Max = 100; + // Rate param_ptr[VALETON_PARAM_MOD_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_MOD_PARAM_1].Max = 10; @@ -878,27 +1045,34 @@ void valeton_params_set_min_max(void) case VALETON_EFFECT_MOD_VIBRATO: // fallthrough case VALETON_EFFECT_MOD_SINE_TREM: { + // Depth param_ptr[VALETON_PARAM_MOD_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_MOD_PARAM_0].Max = 100; + // Rate param_ptr[VALETON_PARAM_MOD_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_MOD_PARAM_1].Max = 10; + // Vol param_ptr[VALETON_PARAM_MOD_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_MOD_PARAM_2].Max = 100; } break; case VALETON_EFFECT_MOD_BIAS_TREM: { + // Depth param_ptr[VALETON_PARAM_MOD_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_MOD_PARAM_0].Max = 100; + // Rate param_ptr[VALETON_PARAM_MOD_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_MOD_PARAM_1].Max = 10; + // Vol param_ptr[VALETON_PARAM_MOD_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_MOD_PARAM_2].Max = 100; + // Bias param_ptr[VALETON_PARAM_MOD_PARAM_3].Min = 0; param_ptr[VALETON_PARAM_MOD_PARAM_3].Max = 100; } break; @@ -912,104 +1086,155 @@ void valeton_params_set_min_max(void) case VALETON_EFFECT_DLY_TAPE: // fallthrough case VALETON_EFFECT_DLY_TUBE: { + // Mix param_ptr[VALETON_PARAM_DLY_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_DLY_PARAM_0].Max = 100; + // Time param_ptr[VALETON_PARAM_DLY_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_DLY_PARAM_1].Max = 1000; + // F.Back param_ptr[VALETON_PARAM_DLY_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_DLY_PARAM_2].Max = 100; + // Trail + param_ptr[VALETON_PARAM_DLY_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_3].Max = 1; } break; case VALETON_EFFECT_DLY_ANALOG: { + // Mix param_ptr[VALETON_PARAM_DLY_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_DLY_PARAM_0].Max = 100; + // Time param_ptr[VALETON_PARAM_DLY_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_DLY_PARAM_1].Max = 4000; + // Feedback param_ptr[VALETON_PARAM_DLY_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_DLY_PARAM_2].Max = 100; + // Trail + param_ptr[VALETON_PARAM_DLY_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_3].Max = 1; } break; case VALETON_EFFECT_DLY_SLAPBACK: { + // Mix param_ptr[VALETON_PARAM_DLY_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_DLY_PARAM_0].Max = 100; + // Time param_ptr[VALETON_PARAM_DLY_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_DLY_PARAM_1].Max = 300; + // F.Back param_ptr[VALETON_PARAM_DLY_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_DLY_PARAM_2].Max = 100; + // Trail + param_ptr[VALETON_PARAM_DLY_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_3].Max = 1; } break; case VALETON_EFFECT_DLY_REV_ECHO: { + // Mix param_ptr[VALETON_PARAM_DLY_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_DLY_PARAM_0].Max = 100; + // Time param_ptr[VALETON_PARAM_DLY_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_DLY_PARAM_1].Max = 780; + // F.Back param_ptr[VALETON_PARAM_DLY_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_DLY_PARAM_2].Max = 100; + // Trail + param_ptr[VALETON_PARAM_DLY_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_3].Max = 1; } break; case VALETON_EFFECT_DLY_PING_PONG: { + // Mix param_ptr[VALETON_PARAM_DLY_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_DLY_PARAM_0].Max = 100; + // Time param_ptr[VALETON_PARAM_DLY_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_DLY_PARAM_1].Max = 500; + // F.Back param_ptr[VALETON_PARAM_DLY_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_DLY_PARAM_2].Max = 100; + // Trail + param_ptr[VALETON_PARAM_DLY_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_3].Max = 1; } break; case VALETON_EFFECT_DLY_RING_ECHO: { + // Mix param_ptr[VALETON_PARAM_DLY_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_DLY_PARAM_0].Max = 100; + // Time param_ptr[VALETON_PARAM_DLY_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_DLY_PARAM_1].Max = 1000; + // F.Back param_ptr[VALETON_PARAM_DLY_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_DLY_PARAM_2].Max = 100; + // R-Mix param_ptr[VALETON_PARAM_DLY_PARAM_3].Min = 0; param_ptr[VALETON_PARAM_DLY_PARAM_3].Max = 100; + // Freq param_ptr[VALETON_PARAM_DLY_PARAM_4].Min = 0; param_ptr[VALETON_PARAM_DLY_PARAM_4].Max = 100; + // Tone + param_ptr[VALETON_PARAM_DLY_PARAM_5].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_5].Max = 100; + + // Trail + param_ptr[VALETON_PARAM_DLY_PARAM_6].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_6].Max = 1; } break; case VALETON_EFFECT_DLY_SWEEP_ECHO: { + // Mix param_ptr[VALETON_PARAM_DLY_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_DLY_PARAM_0].Max = 100; + // Time param_ptr[VALETON_PARAM_DLY_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_DLY_PARAM_1].Max = 1000; + // F.Back param_ptr[VALETON_PARAM_DLY_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_DLY_PARAM_2].Max = 100; + // S-Depth param_ptr[VALETON_PARAM_DLY_PARAM_3].Min = 0; param_ptr[VALETON_PARAM_DLY_PARAM_3].Max = 100; + // S-Rate param_ptr[VALETON_PARAM_DLY_PARAM_4].Min = 0; param_ptr[VALETON_PARAM_DLY_PARAM_4].Max = 100; + + // Trail + param_ptr[VALETON_PARAM_DLY_PARAM_5].Min = 0; + param_ptr[VALETON_PARAM_DLY_PARAM_5].Max = 1; } break; } @@ -1019,15 +1244,21 @@ void valeton_params_set_min_max(void) case VALETON_EFFECT_RVB_AIR: // fallthrough case VALETON_EFFECT_RVB_PLATE: { + // Mix param_ptr[VALETON_PARAM_RVB_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_RVB_PARAM_0].Max = 100; + // Decay param_ptr[VALETON_PARAM_RVB_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_RVB_PARAM_1].Max = 100; + // Damp param_ptr[VALETON_PARAM_RVB_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_RVB_PARAM_2].Max = 100; + // Trail + param_ptr[VALETON_PARAM_RVB_PARAM_3].Min = 0; + param_ptr[VALETON_PARAM_RVB_PARAM_3].Max = 1; } break; case VALETON_EFFECT_RVB_ROOM: // fallthrough @@ -1038,45 +1269,62 @@ void valeton_params_set_min_max(void) case VALETON_EFFECT_RVB_N_STAR: // fallthrough case VALETON_EFFECT_RVB_DEEPSEA: { + // Mix param_ptr[VALETON_PARAM_RVB_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_RVB_PARAM_0].Max = 100; + // Decay param_ptr[VALETON_PARAM_RVB_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_RVB_PARAM_1].Max = 100; + // Trail + param_ptr[VALETON_PARAM_RVB_PARAM_2].Min = 0; + param_ptr[VALETON_PARAM_RVB_PARAM_2].Max = 1; } break; case VALETON_EFFECT_RVB_SWEET_SPACE: { + // Mix param_ptr[VALETON_PARAM_RVB_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_RVB_PARAM_0].Max = 100; + // Decay param_ptr[VALETON_PARAM_RVB_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_RVB_PARAM_1].Max = 100; + // Damp param_ptr[VALETON_PARAM_RVB_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_RVB_PARAM_2].Max = 100; + // Mod param_ptr[VALETON_PARAM_RVB_PARAM_3].Min = 0; param_ptr[VALETON_PARAM_RVB_PARAM_3].Max = 100; + // Trail + param_ptr[VALETON_PARAM_RVB_PARAM_4].Min = 0; + param_ptr[VALETON_PARAM_RVB_PARAM_4].Max = 1; } break; } // NS // all models have same params + // Gain param_ptr[VALETON_PARAM_NS_PARAM_0].Min = 0; param_ptr[VALETON_PARAM_NS_PARAM_0].Max = 100; + // Vol param_ptr[VALETON_PARAM_NS_PARAM_1].Min = 0; param_ptr[VALETON_PARAM_NS_PARAM_1].Max = 100; + // Bass param_ptr[VALETON_PARAM_NS_PARAM_2].Min = 0; param_ptr[VALETON_PARAM_NS_PARAM_2].Max = 100; + // Mid param_ptr[VALETON_PARAM_NS_PARAM_3].Min = 0; param_ptr[VALETON_PARAM_NS_PARAM_3].Max = 100; + // Treble param_ptr[VALETON_PARAM_NS_PARAM_4].Min = 0; param_ptr[VALETON_PARAM_NS_PARAM_4].Max = 100; From d3f48dec35af5a1e571e2cb365f2adf0102cc78d Mon Sep 17 00:00:00 2001 From: Greg Smith Date: Mon, 17 Nov 2025 21:21:44 +1100 Subject: [PATCH 20/34] - implemented amp/cab crossed out for when when Snaptones are active --- source/main/CMakeLists.txt | 8 +- source/main/display_valeton.c | 20 +- source/main/ui_generated_480x320land/images.c | 4 +- source/main/ui_generated_480x320land/images.h | 4 +- .../ui_image_amp_disabled.c | 265 ++++++++++++++ .../ui_image_cab_disabled.c | 265 ++++++++++++++ source/main/ui_generated_800x480land/images.c | 4 +- source/main/ui_generated_800x480land/images.h | 4 +- .../ui_image_amp_disabled.c | 333 ++++++++++++++++++ .../ui_image_cab_disabled.c | 333 ++++++++++++++++++ ...ex_Controller_320_170.eez-project-ui-state | 6 +- .../Tonex_Controller_480_320.eez-project | 18 + ui_design_480x320land/assets/amp_disabled.png | Bin 0 -> 6787 bytes ui_design_480x320land/assets/cab_disabled.png | Bin 0 -> 7089 bytes .../Tonex_Controller_800_480land.eez-project | 18 + ...ontroller_800_480land.eez-project-ui-state | 2 +- ui_design_800x480land/assets/amp_disabled.png | Bin 0 -> 8879 bytes ui_design_800x480land/assets/cab_disabled.png | Bin 0 -> 9511 bytes 18 files changed, 1270 insertions(+), 14 deletions(-) create mode 100644 source/main/ui_generated_480x320land/ui_image_amp_disabled.c create mode 100644 source/main/ui_generated_480x320land/ui_image_cab_disabled.c create mode 100644 source/main/ui_generated_800x480land/ui_image_amp_disabled.c create mode 100644 source/main/ui_generated_800x480land/ui_image_cab_disabled.c create mode 100644 ui_design_480x320land/assets/amp_disabled.png create mode 100644 ui_design_480x320land/assets/cab_disabled.png create mode 100644 ui_design_800x480land/assets/amp_disabled.png create mode 100644 ui_design_800x480land/assets/cab_disabled.png diff --git a/source/main/CMakeLists.txt b/source/main/CMakeLists.txt index 193b06f2..1c4ba43a 100644 --- a/source/main/CMakeLists.txt +++ b/source/main/CMakeLists.txt @@ -38,10 +38,10 @@ if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_43B OR CONFIG_TONEX_CONTR "ui_generated_800x480land/ui_image_nr_off.c" "ui_generated_800x480land/ui_image_nr_on.c" "ui_generated_800x480land/ui_image_rvb_off.c" "ui_generated_800x480land/ui_image_rvb_on.c" "ui_generated_800x480land/ui_image_tc_off.c" "ui_generated_800x480land/ui_image_tc_on.c" - "ui_generated_800x480land/ui_image_amp_off.c" "ui_generated_800x480land/ui_image_amp_on.c" + "ui_generated_800x480land/ui_image_amp_off.c" "ui_generated_800x480land/ui_image_amp_on.c" "ui_generated_800x480land/ui_image_amp_disabled.c" "ui_generated_800x480land/ui_image_dly_off.c" "ui_generated_800x480land/ui_image_dly_on.c" "ui_generated_800x480land/ui_image_dst_off.c" "ui_generated_800x480land/ui_image_dst_on.c" - "ui_generated_800x480land/ui_image_cab_off.c" "ui_generated_800x480land/ui_image_cab_on.c" + "ui_generated_800x480land/ui_image_cab_off.c" "ui_generated_800x480land/ui_image_cab_on.c" "ui_generated_800x480land/ui_image_cab_disabled.c" "ui_generated_800x480land/ui_image_skin_jcm.c") endif() @@ -54,8 +54,8 @@ if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_35B OR CONFIG_TONEX_CONTR "ui_generated_480x320land/ui_image_usb_fail.c" "ui_generated_480x320land/ui_image_next.c" "ui_generated_480x320land/ui_image_previous.c" "ui_generated_480x320land/ui_image_usb_ok.c" "ui_generated_480x320land/ui_image_next_down.c" "ui_generated_480x320land/ui_image_previous_down.c" "ui_generated_480x320land/ui_image_settings.c" "ui_generated_480x320land/ui_image_wifi_conn.c" "ui_generated_480x320land/ui_image_wifi_disconn.c" - "ui_generated_480x320land/ui_image_effect_icon_amp_off.c" "ui_generated_480x320land/ui_image_effect_icon_amp_on.c" - "ui_generated_480x320land/ui_image_effect_icon_cab_off.c" "ui_generated_480x320land/ui_image_effect_icon_cab_on.c" + "ui_generated_480x320land/ui_image_effect_icon_amp_off.c" "ui_generated_480x320land/ui_image_effect_icon_amp_on.c" "ui_generated_48x320land/ui_image_amp_disabled.c" + "ui_generated_480x320land/ui_image_effect_icon_cab_off.c" "ui_generated_480x320land/ui_image_effect_icon_cab_on.c" "ui_generated_48x320land/ui_image_cab_disabled.c" "ui_generated_480x320land/ui_image_effect_icon_comp_off.c" "ui_generated_480x320land/ui_image_effect_icon_comp_on.c" "ui_generated_480x320land/ui_image_effect_icon_delay_off.c" "ui_generated_480x320land/ui_image_effect_icon_gate_off.c" "ui_generated_480x320land/ui_image_effect_icon_gate_on.c" diff --git a/source/main/display_valeton.c b/source/main/display_valeton.c index 5d43d0d8..13ff66a2 100644 --- a/source/main/display_valeton.c +++ b/source/main/display_valeton.c @@ -1438,7 +1438,15 @@ uint8_t valeton_update_ui_parameters(void) { if (param_entry->Value) { - lv_img_set_src(objects.ui_icon_val_amp, (lv_obj_t*)&img_amp_on); + if (param_ptr[VALETON_PARAM_NS_ENABLE].Value != 0.0f) + { + // show disabled + lv_img_set_src(objects.ui_icon_val_amp, (lv_obj_t*)&img_amp_disabled); + } + else + { + lv_img_set_src(objects.ui_icon_val_amp, (lv_obj_t*)&img_amp_on); + } lv_obj_add_state(objects.ui_val_amp_block_switch, LV_STATE_CHECKED); } else @@ -1931,7 +1939,15 @@ uint8_t valeton_update_ui_parameters(void) { if (param_entry->Value) { - lv_img_set_src(objects.ui_icon_val_cab, (lv_obj_t*)&img_cab_on); + if (param_ptr[VALETON_PARAM_NS_ENABLE].Value != 0.0f) + { + // show disabled + lv_img_set_src(objects.ui_icon_val_cab, (lv_obj_t*)&img_cab_disabled); + } + else + { + lv_img_set_src(objects.ui_icon_val_cab, (lv_obj_t*)&img_cab_on); + } lv_obj_add_state(objects.ui_val_cab_block_switch, LV_STATE_CHECKED); } else diff --git a/source/main/ui_generated_480x320land/images.c b/source/main/ui_generated_480x320land/images.c index 0acca683..d24623b7 100644 --- a/source/main/ui_generated_480x320land/images.c +++ b/source/main/ui_generated_480x320land/images.c @@ -1,6 +1,6 @@ #include "images.h" -const ext_img_desc_t images[113] = { +const ext_img_desc_t images[115] = { { "arrow_left", &img_arrow_left }, { "arrow_right", &img_arrow_right }, { "bt_conn", &img_bt_conn }, @@ -114,4 +114,6 @@ const ext_img_desc_t images[113] = { { "rvb_on", &img_rvb_on }, { "tc_off", &img_tc_off }, { "tc_on", &img_tc_on }, + { "amp_disabled", &img_amp_disabled }, + { "cab_disabled", &img_cab_disabled }, }; diff --git a/source/main/ui_generated_480x320land/images.h b/source/main/ui_generated_480x320land/images.h index b175c9dd..3bb1d145 100644 --- a/source/main/ui_generated_480x320land/images.h +++ b/source/main/ui_generated_480x320land/images.h @@ -120,6 +120,8 @@ extern const lv_img_dsc_t img_rvb_off; extern const lv_img_dsc_t img_rvb_on; extern const lv_img_dsc_t img_tc_off; extern const lv_img_dsc_t img_tc_on; +extern const lv_img_dsc_t img_amp_disabled; +extern const lv_img_dsc_t img_cab_disabled; #ifndef EXT_IMG_DESC_T #define EXT_IMG_DESC_T @@ -129,7 +131,7 @@ typedef struct _ext_img_desc_t { } ext_img_desc_t; #endif -extern const ext_img_desc_t images[113]; +extern const ext_img_desc_t images[115]; #ifdef __cplusplus diff --git a/source/main/ui_generated_480x320land/ui_image_amp_disabled.c b/source/main/ui_generated_480x320land/ui_image_amp_disabled.c new file mode 100644 index 00000000..80ebe5b0 --- /dev/null +++ b/source/main/ui_generated_480x320land/ui_image_amp_disabled.c @@ -0,0 +1,265 @@ +#ifdef __has_include + #if __has_include("lvgl.h") + #ifndef LV_LVGL_H_INCLUDE_SIMPLE + #define LV_LVGL_H_INCLUDE_SIMPLE + #endif + #endif +#endif +#ifdef __has_include + #if __has_include("lvgl.h") + #ifndef LV_LVGL_H_INCLUDE_SIMPLE + #define LV_LVGL_H_INCLUDE_SIMPLE + #endif + #endif +#endif + +#if defined(LV_LVGL_H_INCLUDE_SIMPLE) + #include "lvgl.h" +#else + #include "lvgl/lvgl.h" +#endif + + +#ifndef LV_ATTRIBUTE_MEM_ALIGN +#define LV_ATTRIBUTE_MEM_ALIGN +#endif + +#ifndef LV_ATTRIBUTE_IMG_IMG_AMP_DISABLED +#define LV_ATTRIBUTE_IMG_IMG_AMP_DISABLED +#endif + +const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_IMG_AMP_DISABLED uint8_t img_amp_disabled_map[] = { +#if LV_COLOR_DEPTH == 1 || LV_COLOR_DEPTH == 8 + /*Pixel format: Alpha 8 bit, Red: 3 bit, Green: 3 bit, Blue: 2 bit*/ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x5e, 0xf5, 0xd7, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xfd, 0xf5, 0xfe, 0xf5, 0xfe, 0xf5, 0xfe, 0xf5, 0xfe, 0xf5, 0xfe, 0xf5, 0xfe, 0xf5, 0xfe, 0xf5, 0xfe, 0xf5, 0xfe, 0xf5, 0xfe, 0xf5, 0xfe, 0xf5, 0xfe, 0xf5, 0xfe, 0xf5, 0xfd, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xd7, 0xf5, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x6e, 0xf5, 0xff, 0xf5, 0xe4, 0xf5, 0xa0, 0xf5, 0xa6, 0xf5, 0xab, 0xf5, 0xaa, 0xf5, 0xaa, 0xf5, 0xaa, 0xf5, 0xaa, 0xf5, 0xaa, 0xf5, 0xaa, 0xf5, 0xaa, 0xf5, 0xaa, 0xf5, 0xaa, 0xf5, 0xaa, 0xf5, 0xaa, 0xf5, 0xaa, 0xf5, 0xaa, 0xf5, 0xab, 0xf5, 0xa5, 0xf5, 0xa0, 0xf5, 0xe4, 0xf5, 0xff, 0xf5, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x26, 0xf5, 0xff, 0xf5, 0xc5, 0xf5, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x16, 0xf5, 0xc5, 0xf5, 0xff, 0xf5, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x5a, 0xf9, 0xff, 0xf9, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x43, 0xf9, 0xff, 0xf5, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x1c, 0xd1, 0x41, 0xd1, 0x3f, 0xd1, 0x3c, 0xd1, 0x3b, 0xd1, 0x32, 0xd5, 0x8f, 0xf5, 0xff, 0xd1, 0x65, 0xb1, 0x31, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xd1, 0x3c, 0xb1, 0x31, 0xd1, 0x65, 0xf5, 0xff, 0xd5, 0x8f, 0xd1, 0x32, 0xd1, 0x3b, 0xd1, 0x3c, 0xd1, 0x3f, 0xd1, 0x41, 0xd1, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xd5, 0x73, 0xd1, 0xdf, 0xd1, 0xfa, 0xd5, 0xf8, 0xd5, 0xf7, 0xd5, 0xf7, 0xd1, 0xf0, 0xd1, 0xf9, 0xd1, 0xff, 0xd1, 0xf6, 0xd1, 0xef, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf7, 0xd1, 0xef, 0xd1, 0xf6, 0xd1, 0xff, 0xd1, 0xf9, 0xd1, 0xf0, 0xd5, 0xf7, 0xd5, 0xf7, 0xd5, 0xf8, 0xd1, 0xfa, 0xd1, 0xdf, 0xd5, 0x73, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xd5, 0x67, 0xd1, 0xff, 0xd1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd5, 0x67, 0x00, 0x00, + 0xd1, 0x1e, 0xd1, 0xe1, 0xd5, 0xff, 0xf5, 0xff, 0xb1, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xb1, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xe2, 0xd1, 0x49, + 0xb1, 0x65, 0xd1, 0xfb, 0xf5, 0xff, 0xb1, 0xff, 0x44, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x68, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x68, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x44, 0xff, 0xb1, 0xff, 0xf5, 0xff, 0xd1, 0xfa, 0xd1, 0xa7, + 0xd1, 0x6b, 0xd5, 0xfa, 0xf5, 0xff, 0x69, 0xff, 0x44, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xa9, 0xff, 0xa9, 0xff, 0xa9, 0xff, 0xa9, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x44, 0xff, 0x69, 0xff, 0xf5, 0xff, 0xd5, 0xf8, 0xd1, 0xa3, + 0xd1, 0x65, 0xd5, 0xf8, 0xf5, 0xff, 0x8d, 0xff, 0x48, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xa9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xd5, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd5, 0xf8, 0xf5, 0xff, 0x8d, 0xff, 0x48, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xd5, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd5, 0xf8, 0xf5, 0xff, 0x8d, 0xff, 0x48, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xd5, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd5, 0xf8, 0xf5, 0xff, 0x8d, 0xff, 0x48, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x88, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x48, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x6d, 0xff, 0x69, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x48, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xd5, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd5, 0xf8, 0xf5, 0xff, 0x8d, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x88, 0xff, 0x69, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x69, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x6d, 0xff, 0x6d, 0xff, 0x68, 0xff, 0x68, 0xff, 0x69, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x69, 0xff, 0x68, 0xff, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xd5, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd5, 0xf8, 0xf5, 0xff, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x64, 0xff, 0xb1, 0xff, 0xff, 0xff, 0x6d, 0xff, 0xff, 0xff, 0xb1, 0xff, 0x44, 0xff, 0x68, 0xff, 0xff, 0xff, 0x92, 0xff, 0xb6, 0xff, 0xfb, 0xff, 0x44, 0xff, 0x44, 0xff, 0xd6, 0xff, 0xdb, 0xff, 0x49, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x44, 0xff, 0x68, 0xff, 0xff, 0xff, 0xb2, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xd5, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd5, 0xf8, 0xf5, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xf6, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xff, 0x44, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x68, 0xff, 0x44, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb1, 0xff, 0x20, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xf5, 0xff, 0xd5, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd5, 0xf8, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0xb6, 0xff, 0xfb, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x68, 0xff, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb6, 0xff, 0x48, 0xff, 0x68, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0x69, 0xff, 0x44, 0xff, 0x68, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xad, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xd5, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd1, 0xf8, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x68, 0xff, 0x68, 0xff, 0x91, 0xff, 0xad, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xb1, 0xff, 0x6d, 0xff, 0x68, 0xff, 0x69, 0xff, 0x68, 0xff, 0x68, 0xff, 0xb1, 0xff, 0x91, 0xff, 0x68, 0xff, 0x68, 0xff, 0x69, 0xff, 0x68, 0xff, 0x8d, 0xff, 0xb2, 0xff, 0x69, 0xff, 0x68, 0xff, 0x6d, 0xff, 0x68, 0xff, 0x69, 0xff, 0xb2, 0xff, 0x8d, 0xff, 0x48, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xd1, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd1, 0xf9, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x68, 0xff, 0x44, 0xff, 0x44, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x88, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x44, 0xff, 0x44, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x48, 0xff, 0x44, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x44, 0xff, 0x48, 0xff, 0x68, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd1, 0xf8, 0xd1, 0x9e, + 0xd1, 0x68, 0xed, 0xfb, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xfa, 0xd1, 0xa0, + 0xd1, 0x79, 0xe9, 0xfe, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xfd, 0xd1, 0xab, + 0xed, 0x95, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xfe, 0xcd, 0xbc, + 0xed, 0xb4, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x48, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xcf, + 0xe9, 0xca, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xdc, + 0xe9, 0xd7, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xe6, + 0xe9, 0xe1, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xec, + 0xe9, 0xe7, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xf0, + 0xe9, 0xe4, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xef, + 0xe9, 0xdd, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xe9, + 0xe9, 0xd0, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xe2, + 0xe9, 0xbf, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xd7, + 0xed, 0xa4, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf0, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf6, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xc6, + 0xcd, 0x85, 0xe9, 0xfe, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xf0, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf0, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xfe, 0xd1, 0xb3, + 0xd1, 0x70, 0xed, 0xfc, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf0, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf0, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xfc, 0xd1, 0xa4, + 0xd1, 0x66, 0xcd, 0xfa, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf0, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xec, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xf9, 0xd1, 0x9e, + 0xd1, 0x65, 0xd1, 0xf9, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf0, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xec, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd1, 0xf7, 0xd1, 0x9e, + 0xd1, 0x65, 0xd1, 0xf8, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xf6, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xd1, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd1, 0xf8, 0xd1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xcc, 0xff, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf6, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd1, 0xff, 0xd1, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd1, 0xf8, 0xd5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xd5, 0xff, 0xd1, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd1, 0xf8, 0xd5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xd0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xec, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd1, 0xf8, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf0, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd1, 0xf8, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xd0, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd1, 0xf8, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf6, 0xff, 0xfa, 0xff, 0xf6, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xf6, 0xd1, 0x9e, + 0xd1, 0x65, 0xd1, 0xf8, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xf5, 0xd1, 0x9d, + 0xb1, 0x71, 0xd1, 0xfc, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xfb, 0xd1, 0xac, + 0xb1, 0x4f, 0xd1, 0xfb, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xed, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xfa, 0xd1, 0x8e, + 0xd5, 0x07, 0xd1, 0xc0, 0xd1, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xc0, 0xb1, 0x1f, + 0x00, 0x00, 0xd5, 0x2b, 0xd1, 0xe4, 0xd1, 0xff, 0xd5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xd1, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xf1, 0xff, 0xd1, 0xff, 0xd5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xe4, 0xf5, 0x2b, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xd5, 0x29, 0xd1, 0x92, 0xd1, 0xc5, 0xd1, 0xc5, 0xd1, 0x9f, 0xd1, 0x7f, 0xd1, 0x86, 0xd1, 0x87, 0xd1, 0x86, 0xd1, 0x86, 0xd1, 0x7f, 0xd1, 0x98, 0xd1, 0xc1, 0xd1, 0xc3, 0xd1, 0xcb, 0xed, 0xd7, 0xed, 0xe3, 0xe9, 0xec, 0xe9, 0xf2, 0xe9, 0xf5, 0xe9, 0xf7, 0xe9, 0xf5, 0xe9, 0xf2, 0xe9, 0xeb, 0xed, 0xe3, 0xed, 0xd7, 0xd1, 0xcb, 0xd1, 0xc3, 0xd1, 0xc0, 0xd1, 0x9a, 0xd1, 0x7f, 0xd1, 0x86, 0xd1, 0x86, 0xd1, 0x87, 0xd1, 0x87, 0xd1, 0x7f, 0xd1, 0x9e, 0xd1, 0xc5, 0xd1, 0xc5, 0xd1, 0x92, 0xd5, 0x29, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x08, 0xd0, 0x04, 0xbb, 0x2b, 0xbb, 0x5a, 0xb7, 0x4c, 0xbb, 0x4b, 0xb7, 0x4c, 0xbb, 0x4c, 0xbb, 0x57, 0xb7, 0x35, 0xf0, 0x06, 0xf1, 0x06, 0xd5, 0x05, 0xd5, 0x05, 0xd5, 0x05, 0xd5, 0x05, 0xd5, 0x05, 0xd5, 0x05, 0xd5, 0x05, 0xd5, 0x05, 0xd5, 0x05, 0xd5, 0x05, 0xd5, 0x05, 0xd5, 0x05, 0xd5, 0x05, 0xb1, 0x06, 0xcc, 0x05, 0xbb, 0x34, 0xbb, 0x57, 0xb7, 0x4c, 0xb7, 0x4c, 0xbb, 0x4b, 0xbb, 0x4c, 0xbb, 0x5a, 0xb7, 0x2b, 0xd0, 0x04, 0xd1, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbb, 0x90, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0x97, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbb, 0xb5, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xdb, 0xff, 0xbb, 0xff, 0xb7, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0x2f, 0xb7, 0xcb, 0xb7, 0xee, 0xb7, 0xdd, 0xb7, 0xdc, 0xb7, 0xec, 0xb6, 0xd2, 0x92, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0x41, 0xb7, 0xd3, 0xb7, 0xec, 0xb7, 0xdc, 0xb7, 0xdd, 0xb7, 0xee, 0xb6, 0xc9, 0xb6, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#endif +#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP == 0 + /*Pixel format: Alpha 8 bit, Red: 5 bit, Green: 6 bit, Blue: 5 bit*/ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0xed, 0x5e, 0x4a, 0xed, 0xd7, 0x4a, 0xed, 0xff, 0x4a, 0xed, 0xff, 0x4a, 0xed, 0xfd, 0x4a, 0xed, 0xfe, 0x4a, 0xed, 0xfe, 0x4a, 0xed, 0xfe, 0x4a, 0xed, 0xfe, 0x4a, 0xed, 0xfe, 0x4a, 0xed, 0xfe, 0x4a, 0xed, 0xfe, 0x4a, 0xed, 0xfe, 0x4a, 0xed, 0xfe, 0x4a, 0xed, 0xfe, 0x4a, 0xed, 0xfe, 0x4a, 0xed, 0xfe, 0x4a, 0xed, 0xfe, 0x4a, 0xed, 0xfd, 0x4a, 0xed, 0xff, 0x4a, 0xed, 0xff, 0x4a, 0xed, 0xd7, 0x4a, 0xe5, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4a, 0xed, 0x6e, 0x4a, 0xed, 0xff, 0x4a, 0xed, 0xe4, 0x6a, 0xed, 0xa0, 0x6a, 0xed, 0xa6, 0x6a, 0xed, 0xab, 0x6a, 0xed, 0xaa, 0x6a, 0xed, 0xaa, 0x6a, 0xed, 0xaa, 0x6a, 0xed, 0xaa, 0x6a, 0xed, 0xaa, 0x6a, 0xed, 0xaa, 0x6a, 0xed, 0xaa, 0x6a, 0xed, 0xaa, 0x6a, 0xed, 0xaa, 0x6a, 0xed, 0xaa, 0x6a, 0xed, 0xaa, 0x6a, 0xed, 0xaa, 0x6a, 0xed, 0xaa, 0x6a, 0xed, 0xab, 0x6a, 0xed, 0xa5, 0x6a, 0xed, 0xa0, 0x4a, 0xed, 0xe4, 0x4a, 0xed, 0xff, 0x6a, 0xed, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xab, 0xf5, 0x26, 0x4a, 0xe5, 0xff, 0x6a, 0xed, 0xc5, 0x8a, 0xed, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8a, 0xed, 0x16, 0x6a, 0xf5, 0xc5, 0x4a, 0xe5, 0xff, 0x8b, 0xed, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4a, 0xed, 0x5a, 0xab, 0xf5, 0xff, 0xcb, 0xfd, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xab, 0xfd, 0x43, 0xab, 0xf5, 0xff, 0x4a, 0xed, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0xc4, 0x1c, 0x27, 0xc4, 0x41, 0x67, 0xbc, 0x3f, 0x47, 0xbc, 0x3c, 0x47, 0xbc, 0x3b, 0x06, 0xb4, 0x32, 0xa8, 0xcc, 0x8f, 0x8a, 0xf5, 0xff, 0x68, 0xcc, 0x65, 0xe6, 0xb3, 0x31, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0x27, 0xbc, 0x3c, 0xe6, 0xb3, 0x31, 0x68, 0xcc, 0x65, 0x8a, 0xf5, 0xff, 0xa8, 0xcc, 0x8f, 0x06, 0xb4, 0x32, 0x47, 0xbc, 0x3b, 0x47, 0xbc, 0x3c, 0x67, 0xbc, 0x3f, 0x27, 0xc4, 0x41, 0x48, 0xc4, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0xc4, 0x73, 0x27, 0xbc, 0xdf, 0x47, 0xc4, 0xfa, 0x88, 0xcc, 0xf8, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x87, 0xcc, 0xf0, 0x67, 0xcc, 0xf9, 0x67, 0xc4, 0xff, 0x47, 0xc4, 0xf6, 0x87, 0xcc, 0xef, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x87, 0xcc, 0xef, 0x47, 0xc4, 0xf6, 0x67, 0xc4, 0xff, 0x67, 0xcc, 0xf9, 0x87, 0xcc, 0xf0, 0x88, 0xcc, 0xf7, 0x88, 0xcc, 0xf7, 0x87, 0xcc, 0xf8, 0x47, 0xc4, 0xfa, 0x27, 0xbc, 0xdf, 0xa6, 0xcc, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc7, 0xcc, 0x67, 0xe8, 0xbb, 0xff, 0x67, 0xcc, 0xff, 0x28, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xe8, 0xdc, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xa8, 0xe4, 0xff, 0xe8, 0xe3, 0xff, 0x08, 0xe3, 0xff, 0x88, 0xe2, 0xff, 0x27, 0xe2, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x27, 0xe2, 0xff, 0x88, 0xe2, 0xff, 0xe8, 0xe2, 0xff, 0xc8, 0xe3, 0xff, 0xa8, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xe8, 0xdc, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x28, 0xe5, 0xff, 0x68, 0xcc, 0xff, 0x07, 0xbc, 0xff, 0xa7, 0xcc, 0x67, 0x00, 0x00, 0x00, + 0x09, 0xb4, 0x1e, 0x27, 0xbc, 0xe1, 0x88, 0xcc, 0xff, 0x08, 0xe5, 0xff, 0xa6, 0xa3, 0xff, 0x85, 0x72, 0xff, 0xc5, 0x7a, 0xff, 0xc5, 0x7a, 0xff, 0xc5, 0x7a, 0xff, 0xc5, 0x7a, 0xff, 0xc5, 0x7a, 0xff, 0xc5, 0x7a, 0xff, 0xa5, 0x8a, 0xff, 0x46, 0xb2, 0xff, 0x07, 0xd2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xd2, 0xff, 0x46, 0xb2, 0xff, 0xa5, 0x92, 0xff, 0xc5, 0x7a, 0xff, 0xc5, 0x7a, 0xff, 0xc5, 0x7a, 0xff, 0xc5, 0x7a, 0xff, 0xc5, 0x7a, 0xff, 0xc5, 0x7a, 0xff, 0x85, 0x72, 0xff, 0xa6, 0xa3, 0xff, 0x08, 0xe5, 0xff, 0x88, 0xcc, 0xff, 0x08, 0xbc, 0xe2, 0x28, 0xc4, 0x49, + 0x2a, 0xac, 0x65, 0x67, 0xcc, 0xfb, 0x48, 0xed, 0xff, 0xa6, 0xa3, 0xff, 0x23, 0x31, 0xff, 0xa3, 0x41, 0xff, 0xc3, 0x49, 0xff, 0xc3, 0x49, 0xff, 0xc3, 0x49, 0xff, 0xc3, 0x49, 0xff, 0xc4, 0x59, 0xff, 0xc6, 0x99, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xc6, 0xa1, 0xff, 0xc4, 0x59, 0xff, 0xc3, 0x49, 0xff, 0xc3, 0x49, 0xff, 0xa3, 0x49, 0xff, 0xc3, 0x49, 0xff, 0xa3, 0x41, 0xff, 0x23, 0x31, 0xff, 0xa6, 0xa3, 0xff, 0x49, 0xed, 0xff, 0x67, 0xc4, 0xfa, 0x67, 0xc4, 0xa7, + 0x49, 0xb4, 0x6b, 0x87, 0xcc, 0xfa, 0x49, 0xed, 0xff, 0x85, 0x72, 0xff, 0x63, 0x41, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x25, 0x8a, 0xff, 0xe7, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xc9, 0xff, 0x06, 0xb2, 0xff, 0x06, 0xa2, 0xff, 0x26, 0x9a, 0xff, 0x25, 0x9a, 0xff, 0x26, 0x9a, 0xff, 0x06, 0xa2, 0xff, 0x06, 0xb2, 0xff, 0xe7, 0xc9, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xc9, 0xff, 0x25, 0x8a, 0xff, 0x44, 0x62, 0xff, 0x24, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x63, 0x41, 0xff, 0x85, 0x72, 0xff, 0x49, 0xed, 0xff, 0x88, 0xcc, 0xf8, 0x47, 0xc4, 0xa3, + 0x47, 0xc4, 0x65, 0xa8, 0xcc, 0xf8, 0x29, 0xed, 0xff, 0xa5, 0x72, 0xff, 0xa3, 0x49, 0xff, 0x44, 0x62, 0xff, 0x24, 0x62, 0xff, 0x44, 0x62, 0xff, 0x26, 0x9a, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x06, 0xc2, 0xff, 0x06, 0x9a, 0xff, 0x25, 0x7a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x25, 0x7a, 0xff, 0x26, 0x9a, 0xff, 0x06, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0x06, 0x9a, 0xff, 0x44, 0x62, 0xff, 0x24, 0x62, 0xff, 0x44, 0x62, 0xff, 0xa3, 0x49, 0xff, 0xa5, 0x72, 0xff, 0x49, 0xed, 0xff, 0xa8, 0xcc, 0xf6, 0x47, 0xc4, 0x9e, + 0x47, 0xc4, 0x65, 0xa8, 0xcc, 0xf8, 0x29, 0xed, 0xff, 0xa5, 0x7a, 0xff, 0xa3, 0x49, 0xff, 0x44, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x06, 0xaa, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x06, 0xba, 0xff, 0x25, 0x8a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x25, 0x8a, 0xff, 0x06, 0xba, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x06, 0xaa, 0xff, 0x24, 0x6a, 0xff, 0x44, 0x62, 0xff, 0xa3, 0x49, 0xff, 0xa5, 0x7a, 0xff, 0x29, 0xed, 0xff, 0x88, 0xcc, 0xf6, 0x47, 0xc4, 0x9e, + 0x47, 0xc4, 0x65, 0x88, 0xcc, 0xf8, 0x49, 0xed, 0xff, 0xc5, 0x7a, 0xff, 0xa3, 0x49, 0xff, 0x44, 0x6a, 0xff, 0x06, 0xaa, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x26, 0x9a, 0xff, 0x44, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x64, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x65, 0x6a, 0xff, 0x45, 0x6a, 0xff, 0x26, 0x9a, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x06, 0xb2, 0xff, 0x44, 0x6a, 0xff, 0xa3, 0x49, 0xff, 0xc5, 0x7a, 0xff, 0x49, 0xed, 0xff, 0x88, 0xcc, 0xf6, 0x47, 0xc4, 0x9e, + 0x47, 0xc4, 0x65, 0x88, 0xcc, 0xf8, 0x49, 0xed, 0xff, 0xc5, 0x7a, 0xff, 0xa3, 0x49, 0xff, 0x26, 0xaa, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc4, 0x89, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x81, 0x51, 0xff, 0x63, 0x6a, 0xff, 0xa2, 0x51, 0xff, 0x44, 0x62, 0xff, 0x65, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0xa2, 0x51, 0xff, 0x23, 0x6a, 0xff, 0xe2, 0x61, 0xff, 0xe2, 0x51, 0xff, 0x85, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x03, 0x5a, 0xff, 0xc2, 0x59, 0xff, 0x63, 0x6a, 0xff, 0xa1, 0x51, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x82, 0xff, 0xc6, 0xc1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x06, 0xaa, 0xff, 0xa3, 0x49, 0xff, 0xc5, 0x7a, 0xff, 0x49, 0xed, 0xff, 0x88, 0xcc, 0xf6, 0x47, 0xc4, 0x9e, + 0x47, 0xbc, 0x65, 0x88, 0xcc, 0xf8, 0x29, 0xed, 0xff, 0xa5, 0x7a, 0xff, 0xc5, 0x81, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xd2, 0xff, 0xe4, 0x79, 0xff, 0x65, 0x6a, 0xff, 0x02, 0x5a, 0xff, 0x08, 0x83, 0xff, 0x87, 0x62, 0xff, 0xe7, 0x7a, 0xff, 0x23, 0x62, 0xff, 0x85, 0x6a, 0xff, 0xe2, 0x59, 0xff, 0xc6, 0x7a, 0xff, 0xa8, 0x6a, 0xff, 0xe8, 0x72, 0xff, 0x64, 0x6a, 0xff, 0x03, 0x5a, 0xff, 0x44, 0x6a, 0xff, 0x43, 0x6a, 0xff, 0x08, 0x7b, 0xff, 0x67, 0x5a, 0xff, 0x07, 0x7b, 0xff, 0xc2, 0x59, 0xff, 0x85, 0x6a, 0xff, 0xc2, 0x59, 0xff, 0xa6, 0x82, 0xff, 0x28, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc5, 0x81, 0xff, 0xa5, 0x7a, 0xff, 0x29, 0xed, 0xff, 0x88, 0xcc, 0xf6, 0x47, 0xbc, 0x9e, + 0x47, 0xbc, 0x65, 0x88, 0xcc, 0xf8, 0x29, 0xed, 0xff, 0x85, 0x8a, 0xff, 0xe7, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x62, 0x71, 0xff, 0x2c, 0x9c, 0xff, 0xfa, 0xe6, 0xff, 0xa9, 0x5a, 0xff, 0xd8, 0xe6, 0xff, 0x2c, 0x9c, 0xff, 0x81, 0x49, 0xff, 0x23, 0x62, 0xff, 0x5a, 0xff, 0xff, 0xce, 0x7b, 0xff, 0xf3, 0x9c, 0xff, 0x56, 0xde, 0xff, 0x60, 0x49, 0xff, 0x81, 0x51, 0xff, 0x71, 0xc5, 0xff, 0x16, 0xc6, 0xff, 0x69, 0x4a, 0xff, 0x3b, 0xef, 0xff, 0xe6, 0x7a, 0xff, 0x01, 0x41, 0xff, 0x44, 0x62, 0xff, 0x9a, 0xff, 0xff, 0xee, 0x93, 0xff, 0xcb, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x85, 0x8a, 0xff, 0x29, 0xed, 0xff, 0x88, 0xcc, 0xf6, 0x47, 0xbc, 0x9e, + 0x47, 0xbc, 0x65, 0x88, 0xcc, 0xf8, 0x29, 0xed, 0xff, 0x26, 0xba, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xc9, 0xff, 0xd1, 0xf4, 0xff, 0x69, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xd1, 0xff, 0x6e, 0xcc, 0xff, 0xfd, 0xff, 0xff, 0x95, 0xe6, 0xff, 0xfc, 0xff, 0xff, 0xef, 0xbc, 0xff, 0xe0, 0x38, 0xff, 0x07, 0x7b, 0xff, 0xfc, 0xff, 0xff, 0x17, 0xef, 0xff, 0x9a, 0xff, 0xff, 0x7a, 0xff, 0xff, 0xa2, 0x51, 0xff, 0x20, 0x41, 0xff, 0x34, 0xd6, 0xff, 0xda, 0xff, 0xff, 0x95, 0xde, 0xff, 0xfd, 0xff, 0xff, 0x2c, 0xa4, 0xff, 0x40, 0x28, 0xff, 0x48, 0x83, 0xff, 0xfd, 0xff, 0xff, 0xf7, 0xee, 0xff, 0x38, 0xff, 0xff, 0x89, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0x26, 0xba, 0xff, 0x29, 0xed, 0xff, 0x88, 0xcc, 0xf6, 0x47, 0xbc, 0x9e, + 0x47, 0xbc, 0x65, 0x88, 0xcc, 0xf8, 0x68, 0xec, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc4, 0x81, 0xff, 0xae, 0xac, 0xff, 0xb4, 0xfd, 0xff, 0x49, 0xea, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x93, 0xed, 0xff, 0xfd, 0xff, 0xff, 0x96, 0xee, 0xff, 0xe7, 0x7a, 0xff, 0xc2, 0x51, 0xff, 0xe3, 0x59, 0xff, 0x51, 0xc5, 0xff, 0xfd, 0xff, 0xff, 0xfc, 0xff, 0xff, 0x8e, 0xac, 0xff, 0x81, 0x51, 0xff, 0xa2, 0x51, 0xff, 0x8a, 0x8b, 0xff, 0x59, 0xff, 0xff, 0xfd, 0xff, 0xff, 0x55, 0xe6, 0xff, 0x45, 0x6a, 0xff, 0x61, 0x49, 0xff, 0x03, 0x5a, 0xff, 0xf3, 0xd5, 0xff, 0xfd, 0xff, 0xff, 0xba, 0xff, 0xff, 0x2a, 0xab, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x48, 0xec, 0xff, 0x88, 0xcc, 0xf6, 0x47, 0xbc, 0x9e, + 0x47, 0xbc, 0x65, 0x88, 0xcc, 0xf8, 0x28, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x06, 0xba, 0xff, 0x24, 0x62, 0xff, 0xe3, 0x59, 0xff, 0xaa, 0x8b, 0xff, 0x0a, 0xb3, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x8b, 0xb3, 0xff, 0xa7, 0x72, 0xff, 0xc2, 0x51, 0xff, 0x85, 0x6a, 0xff, 0xe3, 0x59, 0xff, 0x03, 0x5a, 0xff, 0xec, 0x93, 0xff, 0x8a, 0x8b, 0xff, 0xc2, 0x51, 0xff, 0x24, 0x62, 0xff, 0x64, 0x6a, 0xff, 0xc2, 0x51, 0xff, 0x29, 0x83, 0xff, 0x2d, 0x9c, 0xff, 0x65, 0x62, 0xff, 0xc2, 0x51, 0xff, 0x85, 0x72, 0xff, 0xe2, 0x59, 0xff, 0x24, 0x62, 0xff, 0x0c, 0x9c, 0xff, 0x49, 0x83, 0xff, 0xa2, 0x51, 0xff, 0x06, 0xb2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0xeb, 0xff, 0x88, 0xcc, 0xf6, 0x47, 0xbc, 0x9e, + 0x47, 0xbc, 0x65, 0x08, 0xd4, 0xf9, 0x28, 0xe2, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x45, 0x7a, 0xff, 0x64, 0x6a, 0xff, 0x03, 0x5a, 0xff, 0x81, 0x49, 0xff, 0x61, 0x49, 0xff, 0xe5, 0x91, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xd1, 0xff, 0xc4, 0x79, 0xff, 0x44, 0x62, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0xe3, 0x59, 0xff, 0x61, 0x49, 0xff, 0x61, 0x49, 0xff, 0x04, 0x5a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x24, 0x62, 0xff, 0xa2, 0x49, 0xff, 0x61, 0x49, 0xff, 0xc2, 0x51, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0xe3, 0x59, 0xff, 0x61, 0x49, 0xff, 0x81, 0x49, 0xff, 0x24, 0x62, 0xff, 0x45, 0x82, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x08, 0xd4, 0xf8, 0x47, 0xbc, 0x9e, + 0x27, 0xc4, 0x68, 0x48, 0xdb, 0xfb, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0x06, 0xb2, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x25, 0x92, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x45, 0x8a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x62, 0xff, 0x64, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x06, 0xb2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xdb, 0xfa, 0x27, 0xc4, 0xa0, + 0xa7, 0xcb, 0x79, 0x67, 0xe2, 0xfe, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x45, 0x8a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x25, 0x92, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x45, 0x8a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x45, 0x8a, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x67, 0xe2, 0xfd, 0xc7, 0xc3, 0xab, + 0x07, 0xd3, 0x95, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xc1, 0xff, 0x65, 0x7a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x26, 0x9a, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x45, 0x8a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x65, 0x72, 0xff, 0xe6, 0xc1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xfe, 0x47, 0xcb, 0xbc, + 0x88, 0xda, 0xb4, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0xa6, 0xa1, 0xff, 0xe4, 0x59, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe5, 0x89, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0xe5, 0x79, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xa5, 0xa1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xd2, 0xcf, + 0x47, 0xda, 0xca, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe5, 0x91, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x46, 0x9a, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x45, 0x8a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0xe5, 0x91, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x87, 0xda, 0xdc, + 0x27, 0xe2, 0xd7, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x28, 0xec, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x08, 0xec, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x48, 0xec, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x49, 0xed, 0xff, 0x28, 0xec, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xe6, + 0x07, 0xe2, 0xe1, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x89, 0xec, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x28, 0xec, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x68, 0xec, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x89, 0xec, 0xff, 0x28, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xec, + 0x07, 0xe2, 0xe7, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x48, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xe8, 0xe3, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x28, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x48, 0xe4, 0xff, 0x27, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xf0, + 0x07, 0xe2, 0xe4, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x48, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xe8, 0xe3, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x28, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x48, 0xe4, 0xff, 0x27, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xef, + 0x27, 0xe2, 0xdd, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x28, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0xc8, 0xe3, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x28, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x28, 0xe4, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xe9, + 0x27, 0xda, 0xd0, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xe3, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xa5, 0xdc, 0xff, 0xa5, 0xdc, 0xff, 0xa5, 0xdc, 0xff, 0x08, 0xe5, 0xff, 0x29, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0xc6, 0xdc, 0xff, 0x85, 0xdc, 0xff, 0x85, 0xdc, 0xff, 0xe7, 0xe4, 0xff, 0x29, 0xe5, 0xff, 0xe8, 0xe3, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x49, 0xe4, 0xff, 0xc7, 0xdc, 0xff, 0xa5, 0xdc, 0xff, 0xa5, 0xdc, 0xff, 0xa5, 0xdc, 0xff, 0xa5, 0xdc, 0xff, 0xa5, 0xdc, 0xff, 0xe7, 0xe4, 0xff, 0x29, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xc8, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x67, 0xda, 0xe2, + 0x67, 0xda, 0xbf, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x48, 0xe3, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0xc7, 0xdc, 0xff, 0x09, 0xe5, 0xff, 0x4a, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xc7, 0xe4, 0xff, 0x29, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x4a, 0xe5, 0xff, 0x2a, 0xe5, 0xff, 0xe7, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x29, 0xe5, 0xff, 0xc7, 0xe3, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x28, 0xe4, 0xff, 0x4a, 0xe5, 0xff, 0x29, 0xe5, 0xff, 0x29, 0xe5, 0xff, 0x2a, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x84, 0xdc, 0xff, 0xa6, 0xdc, 0xff, 0x29, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x68, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xa7, 0xda, 0xd7, + 0xc7, 0xd2, 0xa4, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xe2, 0xff, 0xe8, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0xa5, 0xdc, 0xff, 0x6c, 0xe5, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbd, 0xff, 0xff, 0x6b, 0xe5, 0xff, 0xa5, 0xdc, 0xff, 0xe7, 0xe4, 0xff, 0xe7, 0xe4, 0xff, 0x5a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x10, 0xee, 0xff, 0x84, 0xdc, 0xff, 0xe8, 0xe4, 0xff, 0x85, 0xdc, 0xff, 0x11, 0xf5, 0xff, 0x29, 0xea, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x69, 0xe2, 0xff, 0x59, 0xfe, 0xff, 0xbe, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xde, 0xff, 0xff, 0xf7, 0xf6, 0xff, 0xe8, 0xe4, 0xff, 0xc7, 0xdc, 0xff, 0x29, 0xe5, 0xff, 0xe8, 0xe4, 0xff, 0xe8, 0xe2, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x07, 0xd3, 0xc6, + 0x47, 0xcb, 0x85, 0x27, 0xe2, 0xfe, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x68, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x85, 0xdc, 0xff, 0x73, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x94, 0xf6, 0xff, 0x64, 0xdc, 0xff, 0xc6, 0xdc, 0xff, 0xe7, 0xdc, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x39, 0xff, 0xff, 0xa5, 0xdc, 0xff, 0x64, 0xdc, 0xff, 0x2a, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfd, 0xff, 0x29, 0xea, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x8a, 0xea, 0xff, 0x79, 0xfe, 0xff, 0x9c, 0xff, 0xff, 0x9d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf6, 0xff, 0x85, 0xdc, 0xff, 0x08, 0xe5, 0xff, 0x89, 0xe4, 0xff, 0x47, 0xe2, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xfe, 0x87, 0xcb, 0xb3, + 0xe7, 0xc3, 0x70, 0xc7, 0xda, 0xfc, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0xa8, 0xe3, 0xff, 0x08, 0xe5, 0xff, 0xe8, 0xe4, 0xff, 0xc6, 0xdc, 0xff, 0x18, 0xf7, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0xa6, 0xdc, 0xff, 0xa5, 0xdc, 0xff, 0xe7, 0xe4, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2a, 0xe5, 0xff, 0xe0, 0xd3, 0xff, 0x31, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb6, 0xf5, 0xff, 0x08, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x69, 0xea, 0xff, 0xc5, 0xdb, 0xff, 0x64, 0xdc, 0xff, 0x32, 0xee, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xff, 0xe7, 0xe4, 0xff, 0xc7, 0xdc, 0xff, 0xc8, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xa7, 0xda, 0xfc, 0x07, 0xc4, 0xa4, + 0x27, 0xbc, 0x66, 0x87, 0xcb, 0xfa, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x88, 0xe2, 0xff, 0xc9, 0xe4, 0xff, 0xc6, 0xdc, 0xff, 0x29, 0xe5, 0xff, 0xdf, 0xff, 0xff, 0xbd, 0xff, 0xff, 0x6c, 0xe5, 0xff, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0x29, 0xe5, 0xff, 0x63, 0xdc, 0xff, 0xe8, 0xe4, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xef, 0xed, 0xff, 0xe0, 0xd3, 0xff, 0x5a, 0xff, 0xff, 0xde, 0xff, 0xff, 0xf7, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xec, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x62, 0xdb, 0xff, 0x6b, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xff, 0xe8, 0xe4, 0xff, 0xa6, 0xdc, 0xff, 0xa8, 0xe2, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x87, 0xcb, 0xf9, 0x27, 0xbc, 0x9e, + 0x47, 0xbc, 0x65, 0x27, 0xc4, 0xf9, 0x67, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xe3, 0xff, 0xa5, 0xdc, 0xff, 0xad, 0xe5, 0xff, 0xff, 0xff, 0xff, 0x7b, 0xff, 0xff, 0x84, 0xdc, 0xff, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xed, 0xff, 0x42, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xed, 0xff, 0xde, 0xff, 0xff, 0xf7, 0xf6, 0xff, 0x43, 0xdc, 0xff, 0xde, 0xff, 0xff, 0xf7, 0xf6, 0xff, 0x31, 0xee, 0xff, 0xff, 0xff, 0xff, 0xb5, 0xf6, 0xff, 0x43, 0xdb, 0xff, 0x28, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x8b, 0xe4, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xe8, 0xe4, 0xff, 0xa7, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0x68, 0xe2, 0xff, 0x27, 0xc4, 0xf7, 0x47, 0xbc, 0x9e, + 0x47, 0xbc, 0x65, 0x47, 0xc4, 0xf8, 0x68, 0xdb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x45, 0xdc, 0xff, 0x74, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xf6, 0xff, 0x80, 0xcb, 0xff, 0x53, 0xf6, 0xff, 0xff, 0xff, 0xff, 0x95, 0xf6, 0xff, 0x22, 0xd4, 0xff, 0xc7, 0xdc, 0xff, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x29, 0xe5, 0xff, 0x18, 0xf7, 0xff, 0xbd, 0xff, 0xff, 0xcf, 0xed, 0xff, 0xff, 0xff, 0xff, 0xce, 0xed, 0xff, 0xf0, 0xed, 0xff, 0xff, 0xff, 0xff, 0x95, 0xf6, 0xff, 0x01, 0xd4, 0xff, 0x11, 0xf5, 0xff, 0x49, 0xea, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x69, 0xea, 0xff, 0x79, 0xfe, 0xff, 0x9c, 0xff, 0xff, 0x66, 0xdc, 0xff, 0x47, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x68, 0xdb, 0xff, 0x47, 0xc4, 0xf6, 0x47, 0xbc, 0x9e, + 0x47, 0xbc, 0x65, 0x47, 0xc4, 0xf8, 0x68, 0xd4, 0xff, 0x87, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe2, 0xff, 0x5b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xae, 0xed, 0xff, 0x40, 0xcb, 0xff, 0x8d, 0xe5, 0xff, 0xff, 0xff, 0xff, 0x7b, 0xff, 0xff, 0x64, 0xdc, 0xff, 0xa5, 0xdc, 0xff, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x08, 0xe5, 0xff, 0xae, 0xed, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa6, 0xdc, 0xff, 0x11, 0xee, 0xff, 0xff, 0xff, 0xff, 0x95, 0xf6, 0xff, 0x01, 0xd4, 0xff, 0xf7, 0xf6, 0xff, 0xd7, 0xfd, 0xff, 0x49, 0xea, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xaa, 0xea, 0xff, 0xcc, 0xe4, 0xff, 0x27, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0x67, 0xe2, 0xff, 0x48, 0xd4, 0xff, 0x47, 0xc4, 0xf6, 0x27, 0xbc, 0x9e, + 0x47, 0xbc, 0x65, 0x47, 0xc4, 0xf8, 0xa8, 0xd4, 0xff, 0xc8, 0xdb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x34, 0xf5, 0xff, 0xff, 0xff, 0xff, 0x9c, 0xff, 0xff, 0x39, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x08, 0xe5, 0xff, 0x43, 0xdc, 0xff, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2a, 0xe5, 0xff, 0xa6, 0xdc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5b, 0xff, 0xff, 0x01, 0xd4, 0xff, 0x74, 0xf6, 0xff, 0xff, 0xff, 0xff, 0x95, 0xf6, 0xff, 0x01, 0xd4, 0xff, 0xf7, 0xf6, 0xff, 0xff, 0xff, 0xff, 0x53, 0xf5, 0xff, 0x08, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xa8, 0xdb, 0xff, 0xa8, 0xd4, 0xff, 0x47, 0xc4, 0xf6, 0x27, 0xbc, 0x9e, + 0x47, 0xbc, 0x65, 0x47, 0xc4, 0xf8, 0x88, 0xcc, 0xff, 0xc8, 0xdc, 0xff, 0x08, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x28, 0xe2, 0xff, 0x96, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xae, 0xed, 0xff, 0x22, 0xd4, 0xff, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xe5, 0xff, 0x01, 0xd4, 0xff, 0xf8, 0xf6, 0xff, 0xde, 0xff, 0xff, 0x10, 0xee, 0xff, 0xe0, 0xd3, 0xff, 0xb5, 0xf6, 0xff, 0xff, 0xff, 0xff, 0x95, 0xf6, 0xff, 0x01, 0xd4, 0xff, 0xf7, 0xf6, 0xff, 0xff, 0xff, 0xff, 0x74, 0xf6, 0xff, 0x23, 0xdb, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0xe3, 0xff, 0xc8, 0xdc, 0xff, 0x88, 0xcc, 0xff, 0x47, 0xc4, 0xf6, 0x27, 0xbc, 0x9e, + 0x47, 0xbc, 0x65, 0x47, 0xc4, 0xf8, 0x88, 0xcc, 0xff, 0xe8, 0xdc, 0xff, 0x88, 0xdc, 0xff, 0x67, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x28, 0xe2, 0xff, 0xa7, 0xe3, 0xff, 0x08, 0xdd, 0xff, 0xc7, 0xdc, 0xff, 0xf8, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xb5, 0xf6, 0xff, 0x22, 0xd4, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xce, 0xed, 0xff, 0x63, 0xd4, 0xff, 0xc7, 0xdc, 0xff, 0xe7, 0xdc, 0xff, 0xa6, 0xdc, 0xff, 0x64, 0xdc, 0xff, 0xb5, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xb5, 0xf6, 0xff, 0x01, 0xd4, 0xff, 0xf7, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xf6, 0xff, 0x64, 0xdc, 0xff, 0x08, 0xe4, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x67, 0xe2, 0xff, 0x88, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0x88, 0xcc, 0xff, 0x47, 0xc4, 0xf6, 0x27, 0xbc, 0x9e, + 0x47, 0xbc, 0x65, 0x47, 0xc4, 0xf8, 0xa8, 0xcc, 0xff, 0xc8, 0xdc, 0xff, 0x09, 0xdd, 0xff, 0x06, 0xdc, 0xff, 0x47, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe3, 0xff, 0xa1, 0xd3, 0xff, 0xcf, 0xed, 0xff, 0xff, 0xff, 0xff, 0xbd, 0xff, 0xff, 0xa6, 0xdc, 0xff, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xce, 0xed, 0xff, 0x64, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0xa6, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0x64, 0xdc, 0xff, 0xb6, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xb6, 0xf6, 0xff, 0xe0, 0xd3, 0xff, 0x18, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xf6, 0xff, 0x24, 0xdc, 0xff, 0x88, 0xe3, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x48, 0xe4, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0xa8, 0xcc, 0xff, 0x47, 0xc4, 0xf6, 0x27, 0xbc, 0x9e, + 0x27, 0xbc, 0x65, 0x47, 0xc4, 0xf8, 0xa8, 0xcc, 0xff, 0xc8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0x28, 0xdc, 0xff, 0x69, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x67, 0xe2, 0xff, 0x08, 0xe4, 0xff, 0x11, 0xee, 0xff, 0x31, 0xee, 0xff, 0x08, 0xdd, 0xff, 0xae, 0xe5, 0xff, 0x32, 0xee, 0xff, 0x2a, 0xe5, 0xff, 0xc7, 0xdc, 0xff, 0x09, 0xdd, 0xff, 0x09, 0xdd, 0xff, 0x09, 0xdd, 0xff, 0xa6, 0xdc, 0xff, 0x6c, 0xe5, 0xff, 0x32, 0xee, 0xff, 0x8d, 0xe5, 0xff, 0x85, 0xdc, 0xff, 0x8d, 0xe5, 0xff, 0x32, 0xee, 0xff, 0x6b, 0xe4, 0xff, 0x67, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x28, 0xe4, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0xa8, 0xcc, 0xff, 0x47, 0xc4, 0xf6, 0x27, 0xbc, 0x9e, + 0x26, 0xc4, 0x65, 0x47, 0xc4, 0xf8, 0x88, 0xcc, 0xff, 0xc8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0x09, 0xdd, 0xff, 0x09, 0xdd, 0xff, 0xe6, 0xdb, 0xff, 0x67, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xa7, 0xe2, 0xff, 0xc6, 0xdb, 0xff, 0xa8, 0xdc, 0xff, 0x86, 0xdc, 0xff, 0x85, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0x09, 0xdd, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0x09, 0xdd, 0xff, 0xa7, 0xdc, 0xff, 0x65, 0xdc, 0xff, 0xa7, 0xdc, 0xff, 0xc9, 0xe4, 0xff, 0xc7, 0xdb, 0xff, 0x87, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x68, 0xe2, 0xff, 0x28, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0x88, 0xcc, 0xff, 0x47, 0xc4, 0xf5, 0x27, 0xbc, 0x9d, + 0x2a, 0xa4, 0x71, 0x47, 0xc4, 0xfc, 0x87, 0xcc, 0xff, 0xc8, 0xd4, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0x88, 0xdc, 0xff, 0xc8, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0x68, 0xe2, 0xff, 0x48, 0xe3, 0xff, 0xc8, 0xe3, 0xff, 0x28, 0xe4, 0xff, 0x88, 0xdc, 0xff, 0xa8, 0xdc, 0xff, 0xa8, 0xdc, 0xff, 0xa8, 0xdc, 0xff, 0x88, 0xdc, 0xff, 0x48, 0xe4, 0xff, 0xc8, 0xe3, 0xff, 0x48, 0xe3, 0xff, 0x67, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xa7, 0xe2, 0xff, 0x88, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0x88, 0xcc, 0xff, 0x47, 0xc4, 0xfb, 0x47, 0xbc, 0xac, + 0x0a, 0xa4, 0x4f, 0x27, 0xbc, 0xfb, 0xa7, 0xcc, 0xff, 0xc8, 0xd4, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0x88, 0xe3, 0xff, 0x47, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x47, 0xe2, 0xff, 0x88, 0xe2, 0xff, 0x87, 0xe2, 0xff, 0x88, 0xe2, 0xff, 0x68, 0xe2, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x88, 0xe3, 0xff, 0xc8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xd4, 0xff, 0xa7, 0xcc, 0xff, 0x27, 0xbc, 0xfa, 0x07, 0xbc, 0x8e, + 0xa9, 0xbc, 0x07, 0xe8, 0xb3, 0xc0, 0x47, 0xc4, 0xff, 0xa8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0x48, 0xdc, 0xff, 0x28, 0xe3, 0xff, 0x47, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x48, 0xe2, 0xff, 0x28, 0xe3, 0xff, 0x48, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0xc8, 0xd4, 0xff, 0xa8, 0xd4, 0xff, 0x47, 0xc4, 0xff, 0x07, 0xbc, 0xc0, 0xa8, 0xb3, 0x1f, + 0x00, 0x00, 0x00, 0x45, 0xcd, 0x2b, 0x27, 0xbc, 0xe4, 0x47, 0xc4, 0xff, 0x87, 0xcc, 0xff, 0xa8, 0xd4, 0xff, 0x86, 0xd4, 0xff, 0x86, 0xd4, 0xff, 0x86, 0xd4, 0xff, 0x86, 0xd4, 0xff, 0x86, 0xd4, 0xff, 0x86, 0xd4, 0xff, 0x85, 0xd4, 0xff, 0x27, 0xd4, 0xff, 0x68, 0xdb, 0xff, 0xa7, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xa8, 0xe2, 0xff, 0x68, 0xdb, 0xff, 0x26, 0xd4, 0xff, 0x86, 0xd4, 0xff, 0x86, 0xd4, 0xff, 0x86, 0xd4, 0xff, 0x86, 0xd4, 0xff, 0x86, 0xd4, 0xff, 0x86, 0xd4, 0xff, 0x86, 0xd4, 0xff, 0xa8, 0xcc, 0xff, 0x87, 0xcc, 0xff, 0x47, 0xc4, 0xff, 0x27, 0xbc, 0xe4, 0x65, 0xd5, 0x2b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe6, 0xcc, 0x29, 0xe8, 0xbb, 0x92, 0x48, 0xc4, 0xc5, 0x46, 0xc4, 0xc5, 0x46, 0xc4, 0x9f, 0x68, 0xc4, 0x7f, 0x67, 0xc4, 0x86, 0x67, 0xc4, 0x87, 0x67, 0xc4, 0x86, 0x67, 0xc4, 0x86, 0x68, 0xc4, 0x7f, 0x46, 0xcc, 0x98, 0x26, 0xcc, 0xc1, 0x28, 0xc4, 0xc3, 0xc7, 0xcb, 0xcb, 0x47, 0xd3, 0xd7, 0xc8, 0xda, 0xe3, 0x87, 0xda, 0xec, 0x47, 0xe2, 0xf2, 0x27, 0xe2, 0xf5, 0x27, 0xe2, 0xf7, 0x27, 0xe2, 0xf5, 0x47, 0xe2, 0xf2, 0x67, 0xda, 0xeb, 0xc7, 0xda, 0xe3, 0x27, 0xd3, 0xd7, 0xa7, 0xcb, 0xcb, 0x28, 0xc4, 0xc3, 0x45, 0xc4, 0xc0, 0x45, 0xc4, 0x9a, 0x68, 0xc4, 0x7f, 0x67, 0xc4, 0x86, 0x67, 0xc4, 0x86, 0x67, 0xc4, 0x87, 0x67, 0xc4, 0x87, 0x68, 0xc4, 0x7f, 0x46, 0xc4, 0x9e, 0x46, 0xc4, 0xc5, 0x48, 0xbc, 0xc5, 0xe8, 0xbb, 0x92, 0xa6, 0xcc, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xc4, 0x08, 0x00, 0xc4, 0x04, 0xb7, 0xb5, 0x2b, 0xb9, 0xad, 0x5a, 0x97, 0xad, 0x4c, 0x97, 0xad, 0x4b, 0x98, 0xad, 0x4c, 0xb8, 0xad, 0x4c, 0xb9, 0xad, 0x57, 0x35, 0xa5, 0x35, 0x00, 0xdc, 0x06, 0x05, 0xdc, 0x06, 0xc6, 0xd4, 0x05, 0xc6, 0xd4, 0x05, 0xc6, 0xd4, 0x05, 0xc6, 0xd4, 0x05, 0xc6, 0xd4, 0x05, 0xc6, 0xd4, 0x05, 0xc6, 0xd4, 0x05, 0xc6, 0xd4, 0x05, 0xc6, 0xd4, 0x05, 0xc6, 0xd4, 0x05, 0xc6, 0xd4, 0x05, 0xc6, 0xd4, 0x05, 0xc6, 0xd4, 0x05, 0x05, 0xac, 0x06, 0x40, 0xd3, 0x05, 0x97, 0xb5, 0x34, 0xb9, 0xad, 0x57, 0x97, 0xad, 0x4c, 0x98, 0xad, 0x4c, 0x97, 0xad, 0x4b, 0xb8, 0xad, 0x4c, 0xb9, 0xad, 0x5a, 0x56, 0xad, 0x2b, 0x00, 0xc4, 0x04, 0x08, 0xc4, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xda, 0xad, 0x90, 0xb8, 0xb5, 0xff, 0xd9, 0xb5, 0xff, 0xb8, 0xad, 0xff, 0xb8, 0xad, 0xff, 0xd9, 0xb5, 0xff, 0xb8, 0xb5, 0xff, 0x18, 0x95, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0xad, 0xb5, 0xb8, 0xb5, 0xff, 0xd9, 0xad, 0xff, 0xb8, 0xad, 0xff, 0xb8, 0xad, 0xff, 0xd9, 0xb5, 0xff, 0x98, 0xad, 0xff, 0x17, 0x95, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0xa5, 0x2f, 0x34, 0xa5, 0xcb, 0x35, 0xad, 0xee, 0x35, 0xad, 0xdd, 0x35, 0xad, 0xdc, 0x55, 0xad, 0xec, 0xf3, 0xa4, 0xd2, 0x92, 0x8c, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0xad, 0x41, 0x14, 0xa5, 0xd3, 0x35, 0xad, 0xec, 0x34, 0xad, 0xdc, 0x35, 0xad, 0xdd, 0x55, 0xad, 0xee, 0xf3, 0xa4, 0xc9, 0x93, 0x94, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#endif +#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP != 0 + /*Pixel format: Alpha 8 bit, Red: 5 bit, Green: 6 bit, Blue: 5 bit BUT the 2 color bytes are swapped*/ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x6a, 0x5e, 0xed, 0x4a, 0xd7, 0xed, 0x4a, 0xff, 0xed, 0x4a, 0xff, 0xed, 0x4a, 0xfd, 0xed, 0x4a, 0xfe, 0xed, 0x4a, 0xfe, 0xed, 0x4a, 0xfe, 0xed, 0x4a, 0xfe, 0xed, 0x4a, 0xfe, 0xed, 0x4a, 0xfe, 0xed, 0x4a, 0xfe, 0xed, 0x4a, 0xfe, 0xed, 0x4a, 0xfe, 0xed, 0x4a, 0xfe, 0xed, 0x4a, 0xfe, 0xed, 0x4a, 0xfe, 0xed, 0x4a, 0xfe, 0xed, 0x4a, 0xfd, 0xed, 0x4a, 0xff, 0xed, 0x4a, 0xff, 0xed, 0x4a, 0xd7, 0xe5, 0x4a, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x4a, 0x6e, 0xed, 0x4a, 0xff, 0xed, 0x4a, 0xe4, 0xed, 0x6a, 0xa0, 0xed, 0x6a, 0xa6, 0xed, 0x6a, 0xab, 0xed, 0x6a, 0xaa, 0xed, 0x6a, 0xaa, 0xed, 0x6a, 0xaa, 0xed, 0x6a, 0xaa, 0xed, 0x6a, 0xaa, 0xed, 0x6a, 0xaa, 0xed, 0x6a, 0xaa, 0xed, 0x6a, 0xaa, 0xed, 0x6a, 0xaa, 0xed, 0x6a, 0xaa, 0xed, 0x6a, 0xaa, 0xed, 0x6a, 0xaa, 0xed, 0x6a, 0xaa, 0xed, 0x6a, 0xab, 0xed, 0x6a, 0xa5, 0xed, 0x6a, 0xa0, 0xed, 0x4a, 0xe4, 0xed, 0x4a, 0xff, 0xed, 0x6a, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0xab, 0x26, 0xe5, 0x4a, 0xff, 0xed, 0x6a, 0xc5, 0xed, 0x8a, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x8a, 0x16, 0xf5, 0x6a, 0xc5, 0xe5, 0x4a, 0xff, 0xed, 0x8b, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x4a, 0x5a, 0xf5, 0xab, 0xff, 0xfd, 0xcb, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0xab, 0x43, 0xf5, 0xab, 0xff, 0xed, 0x4a, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x47, 0x1c, 0xc4, 0x27, 0x41, 0xbc, 0x67, 0x3f, 0xbc, 0x47, 0x3c, 0xbc, 0x47, 0x3b, 0xb4, 0x06, 0x32, 0xcc, 0xa8, 0x8f, 0xf5, 0x8a, 0xff, 0xcc, 0x68, 0x65, 0xb3, 0xe6, 0x31, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xbc, 0x27, 0x3c, 0xb3, 0xe6, 0x31, 0xcc, 0x68, 0x65, 0xf5, 0x8a, 0xff, 0xcc, 0xa8, 0x8f, 0xb4, 0x06, 0x32, 0xbc, 0x47, 0x3b, 0xbc, 0x47, 0x3c, 0xbc, 0x67, 0x3f, 0xc4, 0x27, 0x41, 0xc4, 0x48, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x87, 0x73, 0xbc, 0x27, 0xdf, 0xc4, 0x47, 0xfa, 0xcc, 0x88, 0xf8, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x87, 0xf0, 0xcc, 0x67, 0xf9, 0xc4, 0x67, 0xff, 0xc4, 0x47, 0xf6, 0xcc, 0x87, 0xef, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x87, 0xef, 0xc4, 0x47, 0xf6, 0xc4, 0x67, 0xff, 0xcc, 0x67, 0xf9, 0xcc, 0x87, 0xf0, 0xcc, 0x88, 0xf7, 0xcc, 0x88, 0xf7, 0xcc, 0x87, 0xf8, 0xc4, 0x47, 0xfa, 0xbc, 0x27, 0xdf, 0xcc, 0xa6, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xcc, 0xc7, 0x67, 0xbb, 0xe8, 0xff, 0xcc, 0x67, 0xff, 0xe5, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xdc, 0xe8, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0xa8, 0xff, 0xe3, 0xe8, 0xff, 0xe3, 0x08, 0xff, 0xe2, 0x88, 0xff, 0xe2, 0x27, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xe2, 0x27, 0xff, 0xe2, 0x88, 0xff, 0xe2, 0xe8, 0xff, 0xe3, 0xc8, 0xff, 0xe4, 0xa8, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xdc, 0xe8, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x28, 0xff, 0xcc, 0x68, 0xff, 0xbc, 0x07, 0xff, 0xcc, 0xa7, 0x67, 0x00, 0x00, 0x00, + 0xb4, 0x09, 0x1e, 0xbc, 0x27, 0xe1, 0xcc, 0x88, 0xff, 0xe5, 0x08, 0xff, 0xa3, 0xa6, 0xff, 0x72, 0x85, 0xff, 0x7a, 0xc5, 0xff, 0x7a, 0xc5, 0xff, 0x7a, 0xc5, 0xff, 0x7a, 0xc5, 0xff, 0x7a, 0xc5, 0xff, 0x7a, 0xc5, 0xff, 0x8a, 0xa5, 0xff, 0xb2, 0x46, 0xff, 0xd2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd2, 0x07, 0xff, 0xb2, 0x46, 0xff, 0x92, 0xa5, 0xff, 0x7a, 0xc5, 0xff, 0x7a, 0xc5, 0xff, 0x7a, 0xc5, 0xff, 0x7a, 0xc5, 0xff, 0x7a, 0xc5, 0xff, 0x7a, 0xc5, 0xff, 0x72, 0x85, 0xff, 0xa3, 0xa6, 0xff, 0xe5, 0x08, 0xff, 0xcc, 0x88, 0xff, 0xbc, 0x08, 0xe2, 0xc4, 0x28, 0x49, + 0xac, 0x2a, 0x65, 0xcc, 0x67, 0xfb, 0xed, 0x48, 0xff, 0xa3, 0xa6, 0xff, 0x31, 0x23, 0xff, 0x41, 0xa3, 0xff, 0x49, 0xc3, 0xff, 0x49, 0xc3, 0xff, 0x49, 0xc3, 0xff, 0x49, 0xc3, 0xff, 0x59, 0xc4, 0xff, 0x99, 0xc6, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xa1, 0xc6, 0xff, 0x59, 0xc4, 0xff, 0x49, 0xc3, 0xff, 0x49, 0xc3, 0xff, 0x49, 0xa3, 0xff, 0x49, 0xc3, 0xff, 0x41, 0xa3, 0xff, 0x31, 0x23, 0xff, 0xa3, 0xa6, 0xff, 0xed, 0x49, 0xff, 0xc4, 0x67, 0xfa, 0xc4, 0x67, 0xa7, + 0xb4, 0x49, 0x6b, 0xcc, 0x87, 0xfa, 0xed, 0x49, 0xff, 0x72, 0x85, 0xff, 0x41, 0x63, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x8a, 0x25, 0xff, 0xc9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xc9, 0xe7, 0xff, 0xb2, 0x06, 0xff, 0xa2, 0x06, 0xff, 0x9a, 0x26, 0xff, 0x9a, 0x25, 0xff, 0x9a, 0x26, 0xff, 0xa2, 0x06, 0xff, 0xb2, 0x06, 0xff, 0xc9, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc9, 0xe7, 0xff, 0x8a, 0x25, 0xff, 0x62, 0x44, 0xff, 0x62, 0x24, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x41, 0x63, 0xff, 0x72, 0x85, 0xff, 0xed, 0x49, 0xff, 0xcc, 0x88, 0xf8, 0xc4, 0x47, 0xa3, + 0xc4, 0x47, 0x65, 0xcc, 0xa8, 0xf8, 0xed, 0x29, 0xff, 0x72, 0xa5, 0xff, 0x49, 0xa3, 0xff, 0x62, 0x44, 0xff, 0x62, 0x24, 0xff, 0x62, 0x44, 0xff, 0x9a, 0x26, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc2, 0x06, 0xff, 0x9a, 0x06, 0xff, 0x7a, 0x25, 0xff, 0x6a, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x7a, 0x25, 0xff, 0x9a, 0x26, 0xff, 0xc2, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0x9a, 0x06, 0xff, 0x62, 0x44, 0xff, 0x62, 0x24, 0xff, 0x62, 0x44, 0xff, 0x49, 0xa3, 0xff, 0x72, 0xa5, 0xff, 0xed, 0x49, 0xff, 0xcc, 0xa8, 0xf6, 0xc4, 0x47, 0x9e, + 0xc4, 0x47, 0x65, 0xcc, 0xa8, 0xf8, 0xed, 0x29, 0xff, 0x7a, 0xa5, 0xff, 0x49, 0xa3, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x44, 0xff, 0xaa, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xba, 0x06, 0xff, 0x8a, 0x25, 0xff, 0x6a, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x8a, 0x25, 0xff, 0xba, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xaa, 0x06, 0xff, 0x6a, 0x24, 0xff, 0x62, 0x44, 0xff, 0x49, 0xa3, 0xff, 0x7a, 0xa5, 0xff, 0xed, 0x29, 0xff, 0xcc, 0x88, 0xf6, 0xc4, 0x47, 0x9e, + 0xc4, 0x47, 0x65, 0xcc, 0x88, 0xf8, 0xed, 0x49, 0xff, 0x7a, 0xc5, 0xff, 0x49, 0xa3, 0xff, 0x6a, 0x44, 0xff, 0xaa, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x9a, 0x26, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x45, 0xff, 0x9a, 0x26, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb2, 0x06, 0xff, 0x6a, 0x44, 0xff, 0x49, 0xa3, 0xff, 0x7a, 0xc5, 0xff, 0xed, 0x49, 0xff, 0xcc, 0x88, 0xf6, 0xc4, 0x47, 0x9e, + 0xc4, 0x47, 0x65, 0xcc, 0x88, 0xf8, 0xed, 0x49, 0xff, 0x7a, 0xc5, 0xff, 0x49, 0xa3, 0xff, 0xaa, 0x26, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x89, 0xc4, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x62, 0x44, 0xff, 0x51, 0x81, 0xff, 0x6a, 0x63, 0xff, 0x51, 0xa2, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x85, 0xff, 0x51, 0xa2, 0xff, 0x6a, 0x23, 0xff, 0x61, 0xe2, 0xff, 0x51, 0xe2, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x65, 0xff, 0x5a, 0x03, 0xff, 0x59, 0xc2, 0xff, 0x6a, 0x63, 0xff, 0x51, 0xa1, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x82, 0x65, 0xff, 0xc1, 0xc6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xaa, 0x06, 0xff, 0x49, 0xa3, 0xff, 0x7a, 0xc5, 0xff, 0xed, 0x49, 0xff, 0xcc, 0x88, 0xf6, 0xc4, 0x47, 0x9e, + 0xbc, 0x47, 0x65, 0xcc, 0x88, 0xf8, 0xed, 0x29, 0xff, 0x7a, 0xa5, 0xff, 0x81, 0xc5, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd2, 0x07, 0xff, 0x79, 0xe4, 0xff, 0x6a, 0x65, 0xff, 0x5a, 0x02, 0xff, 0x83, 0x08, 0xff, 0x62, 0x87, 0xff, 0x7a, 0xe7, 0xff, 0x62, 0x23, 0xff, 0x6a, 0x85, 0xff, 0x59, 0xe2, 0xff, 0x7a, 0xc6, 0xff, 0x6a, 0xa8, 0xff, 0x72, 0xe8, 0xff, 0x6a, 0x64, 0xff, 0x5a, 0x03, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x43, 0xff, 0x7b, 0x08, 0xff, 0x5a, 0x67, 0xff, 0x7b, 0x07, 0xff, 0x59, 0xc2, 0xff, 0x6a, 0x85, 0xff, 0x59, 0xc2, 0xff, 0x82, 0xa6, 0xff, 0xc2, 0x28, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x81, 0xc5, 0xff, 0x7a, 0xa5, 0xff, 0xed, 0x29, 0xff, 0xcc, 0x88, 0xf6, 0xbc, 0x47, 0x9e, + 0xbc, 0x47, 0x65, 0xcc, 0x88, 0xf8, 0xed, 0x29, 0xff, 0x8a, 0x85, 0xff, 0xc9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x71, 0x62, 0xff, 0x9c, 0x2c, 0xff, 0xe6, 0xfa, 0xff, 0x5a, 0xa9, 0xff, 0xe6, 0xd8, 0xff, 0x9c, 0x2c, 0xff, 0x49, 0x81, 0xff, 0x62, 0x23, 0xff, 0xff, 0x5a, 0xff, 0x7b, 0xce, 0xff, 0x9c, 0xf3, 0xff, 0xde, 0x56, 0xff, 0x49, 0x60, 0xff, 0x51, 0x81, 0xff, 0xc5, 0x71, 0xff, 0xc6, 0x16, 0xff, 0x4a, 0x69, 0xff, 0xef, 0x3b, 0xff, 0x7a, 0xe6, 0xff, 0x41, 0x01, 0xff, 0x62, 0x44, 0xff, 0xff, 0x9a, 0xff, 0x93, 0xee, 0xff, 0xda, 0xcb, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x8a, 0x85, 0xff, 0xed, 0x29, 0xff, 0xcc, 0x88, 0xf6, 0xbc, 0x47, 0x9e, + 0xbc, 0x47, 0x65, 0xcc, 0x88, 0xf8, 0xed, 0x29, 0xff, 0xba, 0x26, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc9, 0xe7, 0xff, 0xf4, 0xd1, 0xff, 0xe2, 0x69, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xc7, 0xff, 0xcc, 0x6e, 0xff, 0xff, 0xfd, 0xff, 0xe6, 0x95, 0xff, 0xff, 0xfc, 0xff, 0xbc, 0xef, 0xff, 0x38, 0xe0, 0xff, 0x7b, 0x07, 0xff, 0xff, 0xfc, 0xff, 0xef, 0x17, 0xff, 0xff, 0x9a, 0xff, 0xff, 0x7a, 0xff, 0x51, 0xa2, 0xff, 0x41, 0x20, 0xff, 0xd6, 0x34, 0xff, 0xff, 0xda, 0xff, 0xde, 0x95, 0xff, 0xff, 0xfd, 0xff, 0xa4, 0x2c, 0xff, 0x28, 0x40, 0xff, 0x83, 0x48, 0xff, 0xff, 0xfd, 0xff, 0xee, 0xf7, 0xff, 0xff, 0x38, 0xff, 0xe2, 0x89, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xba, 0x26, 0xff, 0xed, 0x29, 0xff, 0xcc, 0x88, 0xf6, 0xbc, 0x47, 0x9e, + 0xbc, 0x47, 0x65, 0xcc, 0x88, 0xf8, 0xec, 0x68, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x81, 0xc4, 0xff, 0xac, 0xae, 0xff, 0xfd, 0xb4, 0xff, 0xea, 0x49, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xed, 0x93, 0xff, 0xff, 0xfd, 0xff, 0xee, 0x96, 0xff, 0x7a, 0xe7, 0xff, 0x51, 0xc2, 0xff, 0x59, 0xe3, 0xff, 0xc5, 0x51, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xfc, 0xff, 0xac, 0x8e, 0xff, 0x51, 0x81, 0xff, 0x51, 0xa2, 0xff, 0x8b, 0x8a, 0xff, 0xff, 0x59, 0xff, 0xff, 0xfd, 0xff, 0xe6, 0x55, 0xff, 0x6a, 0x45, 0xff, 0x49, 0x61, 0xff, 0x5a, 0x03, 0xff, 0xd5, 0xf3, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xba, 0xff, 0xab, 0x2a, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xec, 0x48, 0xff, 0xcc, 0x88, 0xf6, 0xbc, 0x47, 0x9e, + 0xbc, 0x47, 0x65, 0xcc, 0x88, 0xf8, 0xeb, 0x28, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xba, 0x06, 0xff, 0x62, 0x24, 0xff, 0x59, 0xe3, 0xff, 0x8b, 0xaa, 0xff, 0xb3, 0x0a, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xb3, 0x8b, 0xff, 0x72, 0xa7, 0xff, 0x51, 0xc2, 0xff, 0x6a, 0x85, 0xff, 0x59, 0xe3, 0xff, 0x5a, 0x03, 0xff, 0x93, 0xec, 0xff, 0x8b, 0x8a, 0xff, 0x51, 0xc2, 0xff, 0x62, 0x24, 0xff, 0x6a, 0x64, 0xff, 0x51, 0xc2, 0xff, 0x83, 0x29, 0xff, 0x9c, 0x2d, 0xff, 0x62, 0x65, 0xff, 0x51, 0xc2, 0xff, 0x72, 0x85, 0xff, 0x59, 0xe2, 0xff, 0x62, 0x24, 0xff, 0x9c, 0x0c, 0xff, 0x83, 0x49, 0xff, 0x51, 0xa2, 0xff, 0xb2, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xeb, 0x08, 0xff, 0xcc, 0x88, 0xf6, 0xbc, 0x47, 0x9e, + 0xbc, 0x47, 0x65, 0xd4, 0x08, 0xf9, 0xe2, 0x28, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x7a, 0x45, 0xff, 0x6a, 0x64, 0xff, 0x5a, 0x03, 0xff, 0x49, 0x81, 0xff, 0x49, 0x61, 0xff, 0x91, 0xe5, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xc7, 0xff, 0x79, 0xc4, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x59, 0xe3, 0xff, 0x49, 0x61, 0xff, 0x49, 0x61, 0xff, 0x5a, 0x04, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x62, 0x24, 0xff, 0x49, 0xa2, 0xff, 0x49, 0x61, 0xff, 0x51, 0xc2, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x59, 0xe3, 0xff, 0x49, 0x61, 0xff, 0x49, 0x81, 0xff, 0x62, 0x24, 0xff, 0x82, 0x45, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xd4, 0x08, 0xf8, 0xbc, 0x47, 0x9e, + 0xc4, 0x27, 0x68, 0xdb, 0x48, 0xfb, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xb2, 0x06, 0xff, 0x6a, 0x44, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x64, 0xff, 0x92, 0x25, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x8a, 0x45, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x62, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x64, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x44, 0xff, 0xb2, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xdb, 0x47, 0xfa, 0xc4, 0x27, 0xa0, + 0xcb, 0xa7, 0x79, 0xe2, 0x67, 0xfe, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0x8a, 0x45, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x92, 0x25, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x8a, 0x45, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x8a, 0x45, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x67, 0xfd, 0xc3, 0xc7, 0xab, + 0xd3, 0x07, 0x95, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xc1, 0xe7, 0xff, 0x7a, 0x65, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x9a, 0x26, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x8a, 0x45, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x72, 0x65, 0xff, 0xc1, 0xe6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xfe, 0xcb, 0x47, 0xbc, + 0xda, 0x88, 0xb4, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xa1, 0xa6, 0xff, 0x59, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x89, 0xe5, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x79, 0xe5, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0xa1, 0xa5, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd2, 0xc7, 0xcf, + 0xda, 0x47, 0xca, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x91, 0xe5, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x9a, 0x46, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x8a, 0x45, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x91, 0xe5, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x87, 0xdc, + 0xe2, 0x27, 0xd7, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xec, 0x28, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xec, 0x08, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xec, 0x48, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xed, 0x49, 0xff, 0xec, 0x28, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xe6, + 0xe2, 0x07, 0xe1, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xec, 0x89, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xec, 0x28, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xec, 0x68, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xec, 0x89, 0xff, 0xe2, 0x28, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xec, + 0xe2, 0x07, 0xe7, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0x48, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe3, 0xe8, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0x48, 0xff, 0xe2, 0x27, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xf0, + 0xe2, 0x07, 0xe4, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0x48, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe3, 0xe8, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0x48, 0xff, 0xe2, 0x27, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xef, + 0xe2, 0x27, 0xdd, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xe4, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe3, 0xc8, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xe4, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0x28, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xe9, + 0xda, 0x27, 0xd0, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe3, 0xc8, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x08, 0xff, 0xdc, 0xa5, 0xff, 0xdc, 0xa5, 0xff, 0xdc, 0xa5, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x29, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0x85, 0xff, 0xdc, 0x85, 0xff, 0xe4, 0xe7, 0xff, 0xe5, 0x29, 0xff, 0xe3, 0xe8, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0x49, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0xa5, 0xff, 0xdc, 0xa5, 0xff, 0xdc, 0xa5, 0xff, 0xdc, 0xa5, 0xff, 0xdc, 0xa5, 0xff, 0xe4, 0xe7, 0xff, 0xe5, 0x29, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe3, 0xc8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x67, 0xe2, + 0xda, 0x67, 0xbf, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe3, 0x48, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xdc, 0xc7, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x4a, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0xc7, 0xff, 0xe5, 0x29, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x4a, 0xff, 0xe5, 0x2a, 0xff, 0xe4, 0xe7, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x29, 0xff, 0xe3, 0xc7, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0x28, 0xff, 0xe5, 0x4a, 0xff, 0xe5, 0x29, 0xff, 0xe5, 0x29, 0xff, 0xe5, 0x2a, 0xff, 0xe5, 0x08, 0xff, 0xdc, 0x84, 0xff, 0xdc, 0xa6, 0xff, 0xe5, 0x29, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe3, 0x68, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0xa7, 0xd7, + 0xd2, 0xc7, 0xa4, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0xc8, 0xff, 0xe4, 0xe8, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xdc, 0xa5, 0xff, 0xe5, 0x6c, 0xff, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbd, 0xff, 0xe5, 0x6b, 0xff, 0xdc, 0xa5, 0xff, 0xe4, 0xe7, 0xff, 0xe4, 0xe7, 0xff, 0xff, 0x5a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xee, 0x10, 0xff, 0xdc, 0x84, 0xff, 0xe4, 0xe8, 0xff, 0xdc, 0x85, 0xff, 0xf5, 0x11, 0xff, 0xea, 0x29, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x69, 0xff, 0xfe, 0x59, 0xff, 0xff, 0xbe, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xde, 0xff, 0xf6, 0xf7, 0xff, 0xe4, 0xe8, 0xff, 0xdc, 0xc7, 0xff, 0xe5, 0x29, 0xff, 0xe4, 0xe8, 0xff, 0xe2, 0xe8, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xd3, 0x07, 0xc6, + 0xcb, 0x47, 0x85, 0xe2, 0x27, 0xfe, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0x68, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xdc, 0x85, 0xff, 0xf6, 0x73, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x94, 0xff, 0xdc, 0x64, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0xe7, 0xff, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x39, 0xff, 0xdc, 0xa5, 0xff, 0xdc, 0x64, 0xff, 0xe5, 0x2a, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xd7, 0xff, 0xea, 0x29, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0x8a, 0xff, 0xfe, 0x79, 0xff, 0xff, 0x9c, 0xff, 0xff, 0x9d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xf7, 0xff, 0xdc, 0x85, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0x89, 0xff, 0xe2, 0x47, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xfe, 0xcb, 0x87, 0xb3, + 0xc3, 0xe7, 0x70, 0xda, 0xc7, 0xfc, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xe3, 0xa8, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0xe8, 0xff, 0xdc, 0xc6, 0xff, 0xf7, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xdc, 0xa6, 0xff, 0xdc, 0xa5, 0xff, 0xe4, 0xe7, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x2a, 0xff, 0xd3, 0xe0, 0xff, 0xee, 0x31, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xb6, 0xff, 0xe2, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0x69, 0xff, 0xdb, 0xc5, 0xff, 0xdc, 0x64, 0xff, 0xee, 0x32, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xe4, 0xe7, 0xff, 0xdc, 0xc7, 0xff, 0xe3, 0xc8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0xa7, 0xfc, 0xc4, 0x07, 0xa4, + 0xbc, 0x27, 0x66, 0xcb, 0x87, 0xfa, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x88, 0xff, 0xe4, 0xc9, 0xff, 0xdc, 0xc6, 0xff, 0xe5, 0x29, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xbd, 0xff, 0xe5, 0x6c, 0xff, 0xff, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x29, 0xff, 0xdc, 0x63, 0xff, 0xe4, 0xe8, 0xff, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xed, 0xef, 0xff, 0xd3, 0xe0, 0xff, 0xff, 0x5a, 0xff, 0xff, 0xde, 0xff, 0xf6, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xec, 0xf0, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xdb, 0x62, 0xff, 0xe5, 0x6b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xe4, 0xe8, 0xff, 0xdc, 0xa6, 0xff, 0xe2, 0xa8, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xcb, 0x87, 0xf9, 0xbc, 0x27, 0x9e, + 0xbc, 0x47, 0x65, 0xc4, 0x27, 0xf9, 0xe2, 0x67, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe3, 0xc8, 0xff, 0xdc, 0xa5, 0xff, 0xe5, 0xad, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7b, 0xff, 0xdc, 0x84, 0xff, 0xff, 0x18, 0xff, 0xff, 0xff, 0xff, 0xed, 0xef, 0xff, 0xdc, 0x42, 0xff, 0xdc, 0xe8, 0xff, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xed, 0xcf, 0xff, 0xff, 0xde, 0xff, 0xf6, 0xf7, 0xff, 0xdc, 0x43, 0xff, 0xff, 0xde, 0xff, 0xf6, 0xf7, 0xff, 0xee, 0x31, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xb5, 0xff, 0xdb, 0x43, 0xff, 0xe2, 0x28, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xe4, 0x8b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xe4, 0xe8, 0xff, 0xe3, 0xa7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xe2, 0x68, 0xff, 0xc4, 0x27, 0xf7, 0xbc, 0x47, 0x9e, + 0xbc, 0x47, 0x65, 0xc4, 0x47, 0xf8, 0xdb, 0x68, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xdc, 0x45, 0xff, 0xf6, 0x74, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xd6, 0xff, 0xcb, 0x80, 0xff, 0xf6, 0x53, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x95, 0xff, 0xd4, 0x22, 0xff, 0xdc, 0xc7, 0xff, 0xff, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x29, 0xff, 0xf7, 0x18, 0xff, 0xff, 0xbd, 0xff, 0xed, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xed, 0xce, 0xff, 0xed, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x95, 0xff, 0xd4, 0x01, 0xff, 0xf5, 0x11, 0xff, 0xea, 0x49, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0x69, 0xff, 0xfe, 0x79, 0xff, 0xff, 0x9c, 0xff, 0xdc, 0x66, 0xff, 0xe2, 0x47, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xdb, 0x68, 0xff, 0xc4, 0x47, 0xf6, 0xbc, 0x47, 0x9e, + 0xbc, 0x47, 0x65, 0xc4, 0x47, 0xf8, 0xd4, 0x68, 0xff, 0xe2, 0x87, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0xe7, 0xff, 0xff, 0x5b, 0xff, 0xff, 0xff, 0xff, 0xed, 0xae, 0xff, 0xcb, 0x40, 0xff, 0xe5, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7b, 0xff, 0xdc, 0x64, 0xff, 0xdc, 0xa5, 0xff, 0xff, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x08, 0xff, 0xed, 0xae, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xdc, 0xa6, 0xff, 0xee, 0x11, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x95, 0xff, 0xd4, 0x01, 0xff, 0xf6, 0xf7, 0xff, 0xfd, 0xd7, 0xff, 0xea, 0x49, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0xaa, 0xff, 0xe4, 0xcc, 0xff, 0xe3, 0x27, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xe2, 0x67, 0xff, 0xd4, 0x48, 0xff, 0xc4, 0x47, 0xf6, 0xbc, 0x27, 0x9e, + 0xbc, 0x47, 0x65, 0xc4, 0x47, 0xf8, 0xd4, 0xa8, 0xff, 0xdb, 0xc8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xf5, 0x34, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9c, 0xff, 0xff, 0x39, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x08, 0xff, 0xdc, 0x43, 0xff, 0xff, 0xde, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x2a, 0xff, 0xdc, 0xa6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5b, 0xff, 0xd4, 0x01, 0xff, 0xf6, 0x74, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x95, 0xff, 0xd4, 0x01, 0xff, 0xf6, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xf5, 0x53, 0xff, 0xe2, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xdb, 0xa8, 0xff, 0xd4, 0xa8, 0xff, 0xc4, 0x47, 0xf6, 0xbc, 0x27, 0x9e, + 0xbc, 0x47, 0x65, 0xc4, 0x47, 0xf8, 0xcc, 0x88, 0xff, 0xdc, 0xc8, 0xff, 0xe3, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x28, 0xff, 0xf5, 0x96, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xae, 0xff, 0xd4, 0x22, 0xff, 0xff, 0xde, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x8d, 0xff, 0xd4, 0x01, 0xff, 0xf6, 0xf8, 0xff, 0xff, 0xde, 0xff, 0xee, 0x10, 0xff, 0xd3, 0xe0, 0xff, 0xf6, 0xb5, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x95, 0xff, 0xd4, 0x01, 0xff, 0xf6, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x74, 0xff, 0xdb, 0x23, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe3, 0x08, 0xff, 0xdc, 0xc8, 0xff, 0xcc, 0x88, 0xff, 0xc4, 0x47, 0xf6, 0xbc, 0x27, 0x9e, + 0xbc, 0x47, 0x65, 0xc4, 0x47, 0xf8, 0xcc, 0x88, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0x88, 0xff, 0xe2, 0x67, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x28, 0xff, 0xe3, 0xa7, 0xff, 0xdd, 0x08, 0xff, 0xdc, 0xc7, 0xff, 0xf6, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xb5, 0xff, 0xd4, 0x22, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xed, 0xce, 0xff, 0xd4, 0x63, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0xe7, 0xff, 0xdc, 0xa6, 0xff, 0xdc, 0x64, 0xff, 0xf6, 0xb5, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xb5, 0xff, 0xd4, 0x01, 0xff, 0xf6, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xd6, 0xff, 0xdc, 0x64, 0xff, 0xe4, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x67, 0xff, 0xdc, 0x88, 0xff, 0xdc, 0xe8, 0xff, 0xcc, 0x88, 0xff, 0xc4, 0x47, 0xf6, 0xbc, 0x27, 0x9e, + 0xbc, 0x47, 0x65, 0xc4, 0x47, 0xf8, 0xcc, 0xa8, 0xff, 0xdc, 0xc8, 0xff, 0xdd, 0x09, 0xff, 0xdc, 0x06, 0xff, 0xe2, 0x47, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe3, 0x27, 0xff, 0xd3, 0xa1, 0xff, 0xed, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbd, 0xff, 0xdc, 0xa6, 0xff, 0xff, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xed, 0xce, 0xff, 0xdc, 0x64, 0xff, 0xdc, 0xc8, 0xff, 0xdc, 0xa6, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0x64, 0xff, 0xf6, 0xb6, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xb6, 0xff, 0xd3, 0xe0, 0xff, 0xf7, 0x18, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xd7, 0xff, 0xdc, 0x24, 0xff, 0xe3, 0x88, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xe4, 0x48, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc8, 0xff, 0xcc, 0xa8, 0xff, 0xc4, 0x47, 0xf6, 0xbc, 0x27, 0x9e, + 0xbc, 0x27, 0x65, 0xc4, 0x47, 0xf8, 0xcc, 0xa8, 0xff, 0xdc, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0x28, 0xff, 0xe2, 0x69, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x67, 0xff, 0xe4, 0x08, 0xff, 0xee, 0x11, 0xff, 0xee, 0x31, 0xff, 0xdd, 0x08, 0xff, 0xe5, 0xae, 0xff, 0xee, 0x32, 0xff, 0xe5, 0x2a, 0xff, 0xdc, 0xc7, 0xff, 0xdd, 0x09, 0xff, 0xdd, 0x09, 0xff, 0xdd, 0x09, 0xff, 0xdc, 0xa6, 0xff, 0xe5, 0x6c, 0xff, 0xee, 0x32, 0xff, 0xe5, 0x8d, 0xff, 0xdc, 0x85, 0xff, 0xe5, 0x8d, 0xff, 0xee, 0x32, 0xff, 0xe4, 0x6b, 0xff, 0xe2, 0x67, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xe4, 0x28, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc8, 0xff, 0xcc, 0xa8, 0xff, 0xc4, 0x47, 0xf6, 0xbc, 0x27, 0x9e, + 0xc4, 0x26, 0x65, 0xc4, 0x47, 0xf8, 0xcc, 0x88, 0xff, 0xdc, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdd, 0x09, 0xff, 0xdd, 0x09, 0xff, 0xdb, 0xe6, 0xff, 0xe2, 0x67, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0xa7, 0xff, 0xdb, 0xc6, 0xff, 0xdc, 0xa8, 0xff, 0xdc, 0x86, 0xff, 0xdc, 0x85, 0xff, 0xdc, 0xe8, 0xff, 0xdd, 0x09, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdd, 0x09, 0xff, 0xdc, 0xa7, 0xff, 0xdc, 0x65, 0xff, 0xdc, 0xa7, 0xff, 0xe4, 0xc9, 0xff, 0xdb, 0xc7, 0xff, 0xe2, 0x87, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x68, 0xff, 0xdc, 0x28, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc8, 0xff, 0xcc, 0x88, 0xff, 0xc4, 0x47, 0xf5, 0xbc, 0x27, 0x9d, + 0xa4, 0x2a, 0x71, 0xc4, 0x47, 0xfc, 0xcc, 0x87, 0xff, 0xd4, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0x88, 0xff, 0xe2, 0xc8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xc7, 0xff, 0xe2, 0x68, 0xff, 0xe3, 0x48, 0xff, 0xe3, 0xc8, 0xff, 0xe4, 0x28, 0xff, 0xdc, 0x88, 0xff, 0xdc, 0xa8, 0xff, 0xdc, 0xa8, 0xff, 0xdc, 0xa8, 0xff, 0xdc, 0x88, 0xff, 0xe4, 0x48, 0xff, 0xe3, 0xc8, 0xff, 0xe3, 0x48, 0xff, 0xe2, 0x67, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0xa7, 0xff, 0xdc, 0x88, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc8, 0xff, 0xcc, 0x88, 0xff, 0xc4, 0x47, 0xfb, 0xbc, 0x47, 0xac, + 0xa4, 0x0a, 0x4f, 0xbc, 0x27, 0xfb, 0xcc, 0xa7, 0xff, 0xd4, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc8, 0xff, 0xe3, 0x88, 0xff, 0xe2, 0x47, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xe2, 0x47, 0xff, 0xe2, 0x88, 0xff, 0xe2, 0x87, 0xff, 0xe2, 0x88, 0xff, 0xe2, 0x68, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xe3, 0x88, 0xff, 0xdc, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xd4, 0xc8, 0xff, 0xcc, 0xa7, 0xff, 0xbc, 0x27, 0xfa, 0xbc, 0x07, 0x8e, + 0xbc, 0xa9, 0x07, 0xb3, 0xe8, 0xc0, 0xc4, 0x47, 0xff, 0xd4, 0xa8, 0xff, 0xd4, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0x48, 0xff, 0xe3, 0x28, 0xff, 0xe2, 0x47, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x48, 0xff, 0xe3, 0x28, 0xff, 0xdc, 0x48, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xa8, 0xff, 0xc4, 0x47, 0xff, 0xbc, 0x07, 0xc0, 0xb3, 0xa8, 0x1f, + 0x00, 0x00, 0x00, 0xcd, 0x45, 0x2b, 0xbc, 0x27, 0xe4, 0xc4, 0x47, 0xff, 0xcc, 0x87, 0xff, 0xd4, 0xa8, 0xff, 0xd4, 0x86, 0xff, 0xd4, 0x86, 0xff, 0xd4, 0x86, 0xff, 0xd4, 0x86, 0xff, 0xd4, 0x86, 0xff, 0xd4, 0x86, 0xff, 0xd4, 0x85, 0xff, 0xd4, 0x27, 0xff, 0xdb, 0x68, 0xff, 0xe2, 0xa7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0xa8, 0xff, 0xdb, 0x68, 0xff, 0xd4, 0x26, 0xff, 0xd4, 0x86, 0xff, 0xd4, 0x86, 0xff, 0xd4, 0x86, 0xff, 0xd4, 0x86, 0xff, 0xd4, 0x86, 0xff, 0xd4, 0x86, 0xff, 0xd4, 0x86, 0xff, 0xcc, 0xa8, 0xff, 0xcc, 0x87, 0xff, 0xc4, 0x47, 0xff, 0xbc, 0x27, 0xe4, 0xd5, 0x65, 0x2b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0xe6, 0x29, 0xbb, 0xe8, 0x92, 0xc4, 0x48, 0xc5, 0xc4, 0x46, 0xc5, 0xc4, 0x46, 0x9f, 0xc4, 0x68, 0x7f, 0xc4, 0x67, 0x86, 0xc4, 0x67, 0x87, 0xc4, 0x67, 0x86, 0xc4, 0x67, 0x86, 0xc4, 0x68, 0x7f, 0xcc, 0x46, 0x98, 0xcc, 0x26, 0xc1, 0xc4, 0x28, 0xc3, 0xcb, 0xc7, 0xcb, 0xd3, 0x47, 0xd7, 0xda, 0xc8, 0xe3, 0xda, 0x87, 0xec, 0xe2, 0x47, 0xf2, 0xe2, 0x27, 0xf5, 0xe2, 0x27, 0xf7, 0xe2, 0x27, 0xf5, 0xe2, 0x47, 0xf2, 0xda, 0x67, 0xeb, 0xda, 0xc7, 0xe3, 0xd3, 0x27, 0xd7, 0xcb, 0xa7, 0xcb, 0xc4, 0x28, 0xc3, 0xc4, 0x45, 0xc0, 0xc4, 0x45, 0x9a, 0xc4, 0x68, 0x7f, 0xc4, 0x67, 0x86, 0xc4, 0x67, 0x86, 0xc4, 0x67, 0x87, 0xc4, 0x67, 0x87, 0xc4, 0x68, 0x7f, 0xc4, 0x46, 0x9e, 0xc4, 0x46, 0xc5, 0xbc, 0x48, 0xc5, 0xbb, 0xe8, 0x92, 0xcc, 0xa6, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x08, 0x08, 0xc4, 0x00, 0x04, 0xb5, 0xb7, 0x2b, 0xad, 0xb9, 0x5a, 0xad, 0x97, 0x4c, 0xad, 0x97, 0x4b, 0xad, 0x98, 0x4c, 0xad, 0xb8, 0x4c, 0xad, 0xb9, 0x57, 0xa5, 0x35, 0x35, 0xdc, 0x00, 0x06, 0xdc, 0x05, 0x06, 0xd4, 0xc6, 0x05, 0xd4, 0xc6, 0x05, 0xd4, 0xc6, 0x05, 0xd4, 0xc6, 0x05, 0xd4, 0xc6, 0x05, 0xd4, 0xc6, 0x05, 0xd4, 0xc6, 0x05, 0xd4, 0xc6, 0x05, 0xd4, 0xc6, 0x05, 0xd4, 0xc6, 0x05, 0xd4, 0xc6, 0x05, 0xd4, 0xc6, 0x05, 0xd4, 0xc6, 0x05, 0xac, 0x05, 0x06, 0xd3, 0x40, 0x05, 0xb5, 0x97, 0x34, 0xad, 0xb9, 0x57, 0xad, 0x97, 0x4c, 0xad, 0x98, 0x4c, 0xad, 0x97, 0x4b, 0xad, 0xb8, 0x4c, 0xad, 0xb9, 0x5a, 0xad, 0x56, 0x2b, 0xc4, 0x00, 0x04, 0xc4, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0xda, 0x90, 0xb5, 0xb8, 0xff, 0xb5, 0xd9, 0xff, 0xad, 0xb8, 0xff, 0xad, 0xb8, 0xff, 0xb5, 0xd9, 0xff, 0xb5, 0xb8, 0xff, 0x95, 0x18, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0xdb, 0xb5, 0xb5, 0xb8, 0xff, 0xad, 0xd9, 0xff, 0xad, 0xb8, 0xff, 0xad, 0xb8, 0xff, 0xb5, 0xd9, 0xff, 0xad, 0x98, 0xff, 0x95, 0x17, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x35, 0x2f, 0xa5, 0x34, 0xcb, 0xad, 0x35, 0xee, 0xad, 0x35, 0xdd, 0xad, 0x35, 0xdc, 0xad, 0x55, 0xec, 0xa4, 0xf3, 0xd2, 0x8c, 0x92, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x56, 0x41, 0xa5, 0x14, 0xd3, 0xad, 0x35, 0xec, 0xad, 0x34, 0xdc, 0xad, 0x35, 0xdd, 0xad, 0x55, 0xee, 0xa4, 0xf3, 0xc9, 0x94, 0x93, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#endif +#if LV_COLOR_DEPTH == 32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0xab, 0xe7, 0x5e, 0x4f, 0xa8, 0xe6, 0xd7, 0x4f, 0xa9, 0xe6, 0xff, 0x4f, 0xa9, 0xe6, 0xff, 0x4f, 0xa9, 0xe6, 0xfd, 0x4f, 0xa9, 0xe6, 0xfe, 0x4f, 0xa9, 0xe6, 0xfe, 0x4f, 0xa9, 0xe6, 0xfe, 0x4f, 0xa9, 0xe6, 0xfe, 0x4f, 0xa9, 0xe6, 0xfe, 0x4f, 0xa9, 0xe6, 0xfe, 0x4f, 0xa9, 0xe6, 0xfe, 0x4f, 0xa9, 0xe6, 0xfe, 0x4f, 0xa9, 0xe6, 0xfe, 0x4f, 0xa9, 0xe6, 0xfe, 0x4f, 0xa9, 0xe6, 0xfe, 0x4f, 0xa9, 0xe6, 0xfe, 0x4f, 0xa9, 0xe6, 0xfe, 0x4f, 0xa9, 0xe6, 0xfd, 0x4f, 0xa9, 0xe6, 0xff, 0x4f, 0xa9, 0xe6, 0xff, 0x4f, 0xa8, 0xe6, 0xd7, 0x50, 0xa9, 0xe3, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0xa9, 0xe6, 0x6e, 0x4f, 0xa8, 0xe5, 0xff, 0x4f, 0xa9, 0xe6, 0xe4, 0x50, 0xab, 0xe9, 0xa0, 0x50, 0xab, 0xe6, 0xa6, 0x51, 0xaa, 0xe7, 0xab, 0x50, 0xaa, 0xe7, 0xaa, 0x50, 0xaa, 0xe7, 0xaa, 0x50, 0xaa, 0xe7, 0xaa, 0x50, 0xaa, 0xe7, 0xaa, 0x50, 0xaa, 0xe7, 0xaa, 0x50, 0xaa, 0xe7, 0xaa, 0x50, 0xaa, 0xe7, 0xaa, 0x50, 0xaa, 0xe7, 0xaa, 0x50, 0xaa, 0xe7, 0xaa, 0x50, 0xaa, 0xe7, 0xaa, 0x50, 0xaa, 0xe7, 0xaa, 0x50, 0xaa, 0xe7, 0xaa, 0x50, 0xaa, 0xe7, 0xaa, 0x51, 0xaa, 0xe7, 0xab, 0x50, 0xaa, 0xe6, 0xa5, 0x50, 0xab, 0xe9, 0xa0, 0x4f, 0xa9, 0xe5, 0xe4, 0x4f, 0xa8, 0xe4, 0xff, 0x50, 0xab, 0xe8, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0xb5, 0xf2, 0x26, 0x4d, 0xa6, 0xe3, 0xff, 0x52, 0xac, 0xea, 0xc5, 0x51, 0xae, 0xe8, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0xae, 0xe8, 0x16, 0x52, 0xac, 0xec, 0xc5, 0x4d, 0xa6, 0xe3, 0xff, 0x57, 0xae, 0xeb, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0xa7, 0xe6, 0x5a, 0x55, 0xb2, 0xf2, 0xff, 0x58, 0xb7, 0xf4, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0xb3, 0xf7, 0x43, 0x55, 0xb2, 0xf1, 0xff, 0x4f, 0xa7, 0xe6, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x89, 0xbf, 0x1c, 0x3b, 0x85, 0xbc, 0x41, 0x39, 0x8a, 0xba, 0x3f, 0x37, 0x88, 0xbb, 0x3c, 0x38, 0x86, 0xba, 0x3b, 0x33, 0x80, 0xb2, 0x32, 0x40, 0x92, 0xca, 0x8f, 0x53, 0xaf, 0xed, 0xff, 0x3d, 0x8d, 0xc5, 0x65, 0x2f, 0x7d, 0xac, 0x31, 0x37, 0x84, 0xbb, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x37, 0x84, 0xb7, 0x3c, 0x2f, 0x7d, 0xac, 0x31, 0x3d, 0x8d, 0xc5, 0x65, 0x53, 0xaf, 0xed, 0xff, 0x40, 0x92, 0xca, 0x8f, 0x33, 0x80, 0xb2, 0x32, 0x38, 0x86, 0xba, 0x3b, 0x37, 0x88, 0xbb, 0x3c, 0x39, 0x8a, 0xba, 0x3f, 0x3b, 0x85, 0xbc, 0x41, 0x40, 0x89, 0xbf, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x90, 0xc1, 0x73, 0x3a, 0x84, 0xba, 0xdf, 0x3a, 0x89, 0xbe, 0xfa, 0x3c, 0x90, 0xc9, 0xf8, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3b, 0x8f, 0xc8, 0xf0, 0x3a, 0x8d, 0xc4, 0xf9, 0x38, 0x8b, 0xc1, 0xff, 0x38, 0x89, 0xc1, 0xf6, 0x3b, 0x8f, 0xc8, 0xef, 0x3d, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3d, 0x90, 0xc9, 0xf7, 0x3b, 0x8f, 0xc8, 0xef, 0x38, 0x89, 0xc1, 0xf6, 0x38, 0x8b, 0xc2, 0xff, 0x3a, 0x8d, 0xc4, 0xf9, 0x3b, 0x8f, 0xc8, 0xf0, 0x3c, 0x90, 0xc8, 0xf7, 0x3c, 0x90, 0xc8, 0xf7, 0x3b, 0x90, 0xc7, 0xf8, 0x3a, 0x87, 0xbe, 0xfa, 0x3b, 0x82, 0xb8, 0xdf, 0x33, 0x95, 0xc5, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x34, 0x99, 0xc6, 0x67, 0x3c, 0x7d, 0xb6, 0xff, 0x3b, 0x8d, 0xc6, 0xff, 0x42, 0xa3, 0xe1, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x42, 0x9e, 0xdd, 0xff, 0x42, 0xa0, 0xdc, 0xff, 0x42, 0xa0, 0xde, 0xff, 0x41, 0x9e, 0xdc, 0xff, 0x3f, 0x9b, 0xd8, 0xff, 0x43, 0x9f, 0xde, 0xff, 0x42, 0xa0, 0xdf, 0xff, 0x41, 0xa0, 0xdd, 0xff, 0x41, 0x94, 0xde, 0xff, 0x3f, 0x7a, 0xdf, 0xff, 0x3d, 0x5e, 0xe0, 0xff, 0x3c, 0x4f, 0xe1, 0xff, 0x3b, 0x45, 0xe1, 0xff, 0x3a, 0x3e, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3e, 0xe2, 0xff, 0x3b, 0x45, 0xe1, 0xff, 0x3c, 0x4f, 0xe1, 0xff, 0x3d, 0x5d, 0xe0, 0xff, 0x3f, 0x79, 0xdf, 0xff, 0x41, 0x94, 0xdd, 0xff, 0x41, 0x9f, 0xdd, 0xff, 0x42, 0xa0, 0xdf, 0xff, 0x43, 0x9f, 0xde, 0xff, 0x3f, 0x9c, 0xd8, 0xff, 0x41, 0x9e, 0xdc, 0xff, 0x42, 0xa0, 0xde, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0x9e, 0xdd, 0xff, 0x43, 0x9f, 0xdf, 0xff, 0x42, 0xa3, 0xe1, 0xff, 0x3c, 0x8d, 0xc5, 0xff, 0x39, 0x81, 0xb9, 0xff, 0x36, 0x95, 0xc4, 0x67, 0x00, 0x00, 0x00, 0x00, + 0x44, 0x7f, 0xb2, 0x1e, 0x3b, 0x82, 0xbb, 0xe1, 0x3c, 0x91, 0xc9, 0xff, 0x42, 0xa1, 0xde, 0xff, 0x32, 0x74, 0xa1, 0xff, 0x25, 0x51, 0x71, 0xff, 0x26, 0x56, 0x76, 0xff, 0x27, 0x58, 0x78, 0xff, 0x27, 0x58, 0x79, 0xff, 0x27, 0x58, 0x7a, 0xff, 0x28, 0x58, 0x7a, 0xff, 0x28, 0x58, 0x7a, 0xff, 0x2b, 0x52, 0x8b, 0xff, 0x32, 0x49, 0xb1, 0xff, 0x37, 0x3f, 0xd2, 0xff, 0x39, 0x3b, 0xde, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3b, 0xde, 0xff, 0x38, 0x3f, 0xd3, 0xff, 0x32, 0x48, 0xb2, 0xff, 0x2b, 0x52, 0x8c, 0xff, 0x28, 0x58, 0x7a, 0xff, 0x28, 0x58, 0x7a, 0xff, 0x27, 0x58, 0x7a, 0xff, 0x27, 0x58, 0x79, 0xff, 0x27, 0x58, 0x78, 0xff, 0x26, 0x56, 0x76, 0xff, 0x25, 0x51, 0x70, 0xff, 0x32, 0x74, 0xa1, 0xff, 0x42, 0xa1, 0xdf, 0xff, 0x3c, 0x91, 0xca, 0xff, 0x3c, 0x81, 0xb9, 0xe2, 0x3f, 0x85, 0xbd, 0x49, + 0x53, 0x83, 0xa4, 0x65, 0x36, 0x8b, 0xc4, 0xfb, 0x42, 0xa6, 0xe7, 0xff, 0x33, 0x74, 0xa0, 0xff, 0x14, 0x25, 0x31, 0xff, 0x18, 0x32, 0x42, 0xff, 0x1b, 0x37, 0x49, 0xff, 0x1b, 0x36, 0x49, 0xff, 0x1b, 0x36, 0x49, 0xff, 0x1b, 0x36, 0x49, 0xff, 0x1e, 0x36, 0x58, 0xff, 0x2c, 0x38, 0x9b, 0xff, 0x38, 0x3a, 0xd6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x39, 0x3a, 0xdf, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3a, 0xd7, 0xff, 0x2c, 0x38, 0x9c, 0xff, 0x1f, 0x37, 0x5a, 0xff, 0x1b, 0x36, 0x49, 0xff, 0x1b, 0x36, 0x49, 0xff, 0x1b, 0x35, 0x49, 0xff, 0x1b, 0x37, 0x49, 0xff, 0x19, 0x32, 0x42, 0xff, 0x14, 0x25, 0x31, 0xff, 0x32, 0x74, 0xa1, 0xff, 0x44, 0xa6, 0xe6, 0xff, 0x39, 0x8c, 0xc2, 0xfa, 0x37, 0x8b, 0xbf, 0xa7, + 0x45, 0x88, 0xb3, 0x6b, 0x3a, 0x91, 0xca, 0xfa, 0x45, 0xa6, 0xe9, 0xff, 0x25, 0x4f, 0x6d, 0xff, 0x16, 0x2d, 0x3d, 0xff, 0x21, 0x49, 0x63, 0xff, 0x20, 0x46, 0x5f, 0xff, 0x20, 0x46, 0x5f, 0xff, 0x20, 0x46, 0x5f, 0xff, 0x28, 0x42, 0x87, 0xff, 0x35, 0x3d, 0xc7, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3b, 0xd4, 0xff, 0x35, 0x3d, 0xc8, 0xff, 0x31, 0x3f, 0xb3, 0xff, 0x2e, 0x41, 0xa2, 0xff, 0x2d, 0x42, 0x9a, 0xff, 0x2b, 0x42, 0x96, 0xff, 0x2d, 0x42, 0x99, 0xff, 0x2d, 0x40, 0xa2, 0xff, 0x30, 0x3e, 0xb1, 0xff, 0x35, 0x3d, 0xc7, 0xff, 0x38, 0x3c, 0xd3, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x3d, 0xc9, 0xff, 0x28, 0x42, 0x89, 0xff, 0x20, 0x46, 0x5f, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x20, 0x46, 0x5f, 0xff, 0x21, 0x49, 0x64, 0xff, 0x16, 0x2d, 0x3d, 0xff, 0x24, 0x4f, 0x6d, 0xff, 0x45, 0xa6, 0xe6, 0xff, 0x3c, 0x90, 0xc9, 0xf8, 0x38, 0x87, 0xbd, 0xa3, + 0x35, 0x88, 0xc2, 0x65, 0x3e, 0x93, 0xca, 0xf8, 0x45, 0xa5, 0xe6, 0xff, 0x25, 0x52, 0x71, 0xff, 0x1a, 0x34, 0x46, 0xff, 0x21, 0x48, 0x63, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x22, 0x47, 0x63, 0xff, 0x2d, 0x42, 0x9a, 0xff, 0x38, 0x3a, 0xdd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xdf, 0xff, 0x33, 0x3e, 0xbf, 0xff, 0x2c, 0x41, 0x9b, 0xff, 0x26, 0x44, 0x7a, 0xff, 0x22, 0x46, 0x68, 0xff, 0x21, 0x47, 0x62, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x22, 0x46, 0x68, 0xff, 0x26, 0x45, 0x7a, 0xff, 0x2c, 0x42, 0x99, 0xff, 0x33, 0x3e, 0xbd, 0xff, 0x39, 0x3b, 0xdd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x39, 0xde, 0xff, 0x2d, 0x41, 0x9b, 0xff, 0x22, 0x47, 0x63, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x21, 0x48, 0x63, 0xff, 0x1a, 0x34, 0x45, 0xff, 0x25, 0x52, 0x71, 0xff, 0x44, 0xa6, 0xe6, 0xff, 0x3d, 0x92, 0xca, 0xf6, 0x38, 0x88, 0xbe, 0x9e, + 0x3a, 0x88, 0xbd, 0x65, 0x3d, 0x92, 0xca, 0xf8, 0x45, 0xa5, 0xe7, 0xff, 0x26, 0x55, 0x74, 0xff, 0x1a, 0x35, 0x45, 0xff, 0x22, 0x49, 0x63, 0xff, 0x22, 0x46, 0x64, 0xff, 0x2f, 0x3f, 0xaa, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x33, 0x3e, 0xba, 0xff, 0x29, 0x42, 0x8b, 0xff, 0x23, 0x47, 0x69, 0xff, 0x22, 0x48, 0x62, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x62, 0xff, 0x22, 0x48, 0x62, 0xff, 0x21, 0x47, 0x62, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x21, 0x47, 0x62, 0xff, 0x22, 0x48, 0x62, 0xff, 0x22, 0x48, 0x62, 0xff, 0x22, 0x48, 0x63, 0xff, 0x23, 0x47, 0x68, 0xff, 0x29, 0x44, 0x87, 0xff, 0x32, 0x3e, 0xb9, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x2f, 0x3f, 0xab, 0xff, 0x22, 0x45, 0x65, 0xff, 0x22, 0x49, 0x63, 0xff, 0x1a, 0x35, 0x46, 0xff, 0x26, 0x55, 0x74, 0xff, 0x45, 0xa5, 0xe7, 0xff, 0x3c, 0x91, 0xca, 0xf6, 0x38, 0x88, 0xbd, 0x9e, + 0x3a, 0x88, 0xbd, 0x65, 0x3d, 0x91, 0xca, 0xf8, 0x46, 0xa6, 0xe7, 0xff, 0x26, 0x56, 0x75, 0xff, 0x1a, 0x34, 0x46, 0xff, 0x22, 0x49, 0x66, 0xff, 0x2f, 0x40, 0xaa, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3d, 0xcc, 0xff, 0x2c, 0x43, 0x97, 0xff, 0x22, 0x48, 0x6a, 0xff, 0x24, 0x4c, 0x65, 0xff, 0x26, 0x4c, 0x66, 0xff, 0x1f, 0x47, 0x63, 0xff, 0x24, 0x4c, 0x66, 0xff, 0x24, 0x4b, 0x65, 0xff, 0x21, 0x49, 0x63, 0xff, 0x22, 0x49, 0x65, 0xff, 0x26, 0x4c, 0x67, 0xff, 0x20, 0x48, 0x63, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x26, 0x4d, 0x67, 0xff, 0x22, 0x49, 0x64, 0xff, 0x21, 0x49, 0x64, 0xff, 0x25, 0x4b, 0x66, 0xff, 0x24, 0x4a, 0x65, 0xff, 0x1f, 0x47, 0x61, 0xff, 0x25, 0x4c, 0x65, 0xff, 0x24, 0x49, 0x6b, 0xff, 0x2c, 0x43, 0x97, 0xff, 0x37, 0x3c, 0xd2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x2f, 0x3f, 0xac, 0xff, 0x23, 0x49, 0x68, 0xff, 0x1a, 0x34, 0x46, 0xff, 0x26, 0x56, 0x75, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x3c, 0x91, 0xc9, 0xf6, 0x38, 0x88, 0xbd, 0x9e, + 0x3a, 0x88, 0xbd, 0x65, 0x3c, 0x91, 0xca, 0xf8, 0x44, 0xa6, 0xe6, 0xff, 0x26, 0x56, 0x75, 0xff, 0x1a, 0x35, 0x49, 0xff, 0x2e, 0x42, 0xa6, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xe2, 0xff, 0x1e, 0x38, 0x85, 0xff, 0x28, 0x4f, 0x69, 0xff, 0x25, 0x4e, 0x69, 0xff, 0x1f, 0x47, 0x61, 0xff, 0x08, 0x31, 0x4d, 0xff, 0x1b, 0x4b, 0x69, 0xff, 0x0c, 0x35, 0x52, 0xff, 0x1e, 0x46, 0x5f, 0xff, 0x25, 0x4d, 0x67, 0xff, 0x27, 0x4f, 0x68, 0xff, 0x0d, 0x35, 0x50, 0xff, 0x15, 0x43, 0x64, 0xff, 0x10, 0x3c, 0x5c, 0xff, 0x12, 0x3a, 0x53, 0xff, 0x29, 0x51, 0x6b, 0xff, 0x25, 0x4d, 0x68, 0xff, 0x18, 0x3f, 0x59, 0xff, 0x0d, 0x38, 0x55, 0xff, 0x1b, 0x4b, 0x6b, 0xff, 0x08, 0x32, 0x4e, 0xff, 0x25, 0x4c, 0x66, 0xff, 0x26, 0x4d, 0x68, 0xff, 0x2b, 0x4b, 0x7d, 0xff, 0x2f, 0x39, 0xbd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x2f, 0x41, 0xa9, 0xff, 0x1a, 0x35, 0x49, 0xff, 0x26, 0x56, 0x75, 0xff, 0x44, 0xa6, 0xe6, 0xff, 0x3c, 0x91, 0xca, 0xf6, 0x38, 0x88, 0xbd, 0x9e, + 0x3a, 0x88, 0xbb, 0x65, 0x3c, 0x91, 0xc9, 0xf8, 0x44, 0xa5, 0xe5, 0xff, 0x26, 0x55, 0x75, 0xff, 0x26, 0x38, 0x7e, 0xff, 0x38, 0x3a, 0xdd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3e, 0xcf, 0xff, 0x1e, 0x3c, 0x7a, 0xff, 0x26, 0x4d, 0x68, 0xff, 0x13, 0x3e, 0x5b, 0xff, 0x3c, 0x60, 0x7c, 0xff, 0x38, 0x4e, 0x5c, 0xff, 0x34, 0x5b, 0x75, 0xff, 0x19, 0x42, 0x5f, 0xff, 0x27, 0x4f, 0x69, 0xff, 0x13, 0x3c, 0x57, 0xff, 0x2c, 0x56, 0x75, 0xff, 0x3e, 0x53, 0x64, 0xff, 0x3d, 0x5b, 0x6d, 0xff, 0x1f, 0x4c, 0x69, 0xff, 0x1a, 0x40, 0x5b, 0xff, 0x22, 0x49, 0x64, 0xff, 0x1b, 0x47, 0x65, 0xff, 0x3d, 0x5e, 0x74, 0xff, 0x38, 0x4b, 0x59, 0xff, 0x37, 0x5e, 0x7a, 0xff, 0x10, 0x39, 0x55, 0xff, 0x27, 0x4f, 0x6a, 0xff, 0x11, 0x39, 0x55, 0xff, 0x2e, 0x55, 0x7f, 0xff, 0x3d, 0x44, 0xc0, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3b, 0xde, 0xff, 0x25, 0x37, 0x80, 0xff, 0x26, 0x55, 0x75, 0xff, 0x44, 0xa5, 0xe5, 0xff, 0x3c, 0x91, 0xc9, 0xf6, 0x38, 0x88, 0xbb, 0x9e, + 0x3a, 0x88, 0xbb, 0x65, 0x3c, 0x91, 0xc9, 0xf8, 0x44, 0xa5, 0xe5, 0xff, 0x2a, 0x51, 0x86, 0xff, 0x36, 0x3a, 0xcb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x35, 0x3a, 0xd3, 0xff, 0x12, 0x2b, 0x6c, 0xff, 0x5e, 0x83, 0x99, 0xff, 0xd2, 0xdd, 0xe2, 0xff, 0x49, 0x53, 0x5b, 0xff, 0xbc, 0xd7, 0xdd, 0xff, 0x5c, 0x83, 0x9b, 0xff, 0x09, 0x2e, 0x4a, 0xff, 0x18, 0x43, 0x61, 0xff, 0xcc, 0xe9, 0xf4, 0xff, 0x71, 0x76, 0x74, 0xff, 0x95, 0x9c, 0x9b, 0xff, 0xae, 0xc9, 0xd9, 0xff, 0x01, 0x2b, 0x4b, 0xff, 0x05, 0x2e, 0x4c, 0xff, 0x84, 0xac, 0xbf, 0xff, 0xb0, 0xc0, 0xbf, 0xff, 0x4b, 0x4b, 0x4a, 0xff, 0xd4, 0xe2, 0xea, 0xff, 0x33, 0x5d, 0x7a, 0xff, 0x05, 0x21, 0x3e, 0xff, 0x1e, 0x46, 0x62, 0xff, 0xd0, 0xf0, 0xf7, 0xff, 0x71, 0x7d, 0x92, 0xff, 0x55, 0x59, 0xdb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x3a, 0xcc, 0xff, 0x29, 0x50, 0x87, 0xff, 0x44, 0xa5, 0xe5, 0xff, 0x3c, 0x91, 0xc9, 0xf6, 0x38, 0x88, 0xbb, 0x9e, + 0x3a, 0x86, 0xbb, 0x65, 0x3c, 0x90, 0xc9, 0xf8, 0x45, 0xa3, 0xe5, 0xff, 0x32, 0x45, 0xb7, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x34, 0x3b, 0xca, 0xff, 0x86, 0x98, 0xee, 0xff, 0x47, 0x4b, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x34, 0x36, 0xd1, 0xff, 0x72, 0x8a, 0xc6, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xa8, 0xd0, 0xdd, 0xff, 0xdc, 0xfc, 0xff, 0xff, 0x7b, 0x9d, 0xb4, 0xff, 0x00, 0x1a, 0x36, 0xff, 0x39, 0x5e, 0x79, 0xff, 0xdf, 0xfe, 0xff, 0xff, 0xb6, 0xde, 0xe5, 0xff, 0xce, 0xf0, 0xf5, 0xff, 0xd0, 0xeb, 0xf9, 0xff, 0x0c, 0x35, 0x53, 0xff, 0x00, 0x25, 0x42, 0xff, 0xa3, 0xc4, 0xd3, 0xff, 0xd3, 0xf8, 0xff, 0xff, 0xaa, 0xd1, 0xdb, 0xff, 0xe7, 0xff, 0xff, 0xff, 0x5f, 0x83, 0x9c, 0xff, 0x00, 0x08, 0x27, 0xff, 0x43, 0x67, 0x81, 0xff, 0xea, 0xff, 0xff, 0xff, 0xb6, 0xdd, 0xe6, 0xff, 0xc2, 0xe2, 0xfb, 0xff, 0x4a, 0x4f, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x33, 0x44, 0xb9, 0xff, 0x45, 0xa3, 0xe5, 0xff, 0x3c, 0x90, 0xc9, 0xf6, 0x38, 0x88, 0xbb, 0x9e, + 0x3a, 0x86, 0xbb, 0x65, 0x3c, 0x90, 0xc9, 0xf8, 0x42, 0x8a, 0xe4, 0xff, 0x39, 0x3b, 0xdd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3a, 0xdf, 0xff, 0x20, 0x39, 0x81, 0xff, 0x71, 0x92, 0xab, 0xff, 0xa0, 0xb5, 0xf5, 0xff, 0x44, 0x46, 0xe4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3d, 0xd6, 0xff, 0x98, 0xaf, 0xea, 0xff, 0xe6, 0xff, 0xff, 0xff, 0xaf, 0xd0, 0xe6, 0xff, 0x39, 0x5d, 0x76, 0xff, 0x0e, 0x36, 0x52, 0xff, 0x16, 0x3c, 0x57, 0xff, 0x86, 0xa7, 0xbe, 0xff, 0xe4, 0xff, 0xff, 0xff, 0xdd, 0xff, 0xff, 0xff, 0x6e, 0x90, 0xa8, 0xff, 0x09, 0x31, 0x4c, 0xff, 0x0c, 0x35, 0x50, 0xff, 0x4d, 0x6f, 0x8a, 0xff, 0xc7, 0xe6, 0xf9, 0xff, 0xe8, 0xff, 0xff, 0xff, 0xa6, 0xc9, 0xde, 0xff, 0x24, 0x49, 0x64, 0xff, 0x0a, 0x2d, 0x4a, 0xff, 0x1a, 0x3f, 0x5a, 0xff, 0x9b, 0xba, 0xd1, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xd3, 0xf2, 0xff, 0xff, 0x4c, 0x63, 0xa9, 0xff, 0x38, 0x3a, 0xde, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3b, 0xde, 0xff, 0x42, 0x87, 0xe4, 0xff, 0x3c, 0x90, 0xc9, 0xf6, 0x38, 0x88, 0xbb, 0x9e, + 0x3a, 0x86, 0xbb, 0x65, 0x3c, 0x8f, 0xc9, 0xf8, 0x3f, 0x64, 0xe4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x33, 0x40, 0xb6, 0xff, 0x1c, 0x42, 0x5f, 0xff, 0x17, 0x3c, 0x54, 0xff, 0x51, 0x72, 0x89, 0xff, 0x4e, 0x61, 0xae, 0xff, 0x38, 0x3a, 0xda, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3d, 0xd5, 0xff, 0x5a, 0x70, 0xac, 0xff, 0x34, 0x55, 0x6d, 0xff, 0x12, 0x38, 0x52, 0xff, 0x28, 0x4f, 0x6a, 0xff, 0x15, 0x3d, 0x58, 0xff, 0x1a, 0x3e, 0x57, 0xff, 0x5e, 0x7d, 0x93, 0xff, 0x53, 0x71, 0x8b, 0xff, 0x12, 0x37, 0x51, 0xff, 0x1d, 0x45, 0x5f, 0xff, 0x22, 0x4b, 0x65, 0xff, 0x0f, 0x36, 0x50, 0xff, 0x44, 0x64, 0x7c, 0xff, 0x66, 0x84, 0x99, 0xff, 0x2a, 0x4c, 0x63, 0xff, 0x0f, 0x36, 0x51, 0xff, 0x26, 0x50, 0x6c, 0xff, 0x13, 0x3a, 0x55, 0xff, 0x22, 0x45, 0x5d, 0xff, 0x61, 0x80, 0x94, 0xff, 0x47, 0x68, 0x81, 0xff, 0x10, 0x35, 0x4e, 0xff, 0x30, 0x3f, 0xb1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3f, 0x61, 0xe4, 0xff, 0x3c, 0x8e, 0xc8, 0xf6, 0x38, 0x88, 0xbb, 0x9e, + 0x3a, 0x86, 0xbb, 0x65, 0x3c, 0x80, 0xcd, 0xf9, 0x3c, 0x42, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3b, 0xdb, 0xff, 0x27, 0x46, 0x7a, 0xff, 0x23, 0x4b, 0x64, 0xff, 0x1a, 0x40, 0x5a, 0xff, 0x09, 0x2e, 0x46, 0xff, 0x08, 0x2d, 0x46, 0xff, 0x25, 0x3d, 0x8c, 0xff, 0x39, 0x3b, 0xdc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x34, 0x38, 0xce, 0xff, 0x1c, 0x37, 0x75, 0xff, 0x22, 0x48, 0x63, 0xff, 0x24, 0x4c, 0x66, 0xff, 0x26, 0x4c, 0x67, 0xff, 0x18, 0x3d, 0x58, 0xff, 0x07, 0x2c, 0x45, 0xff, 0x09, 0x2d, 0x47, 0xff, 0x1c, 0x41, 0x5b, 0xff, 0x26, 0x4d, 0x68, 0xff, 0x25, 0x4c, 0x67, 0xff, 0x20, 0x45, 0x60, 0xff, 0x0d, 0x32, 0x4b, 0xff, 0x06, 0x2b, 0x45, 0xff, 0x13, 0x38, 0x52, 0xff, 0x25, 0x4a, 0x66, 0xff, 0x25, 0x4c, 0x68, 0xff, 0x25, 0x4c, 0x67, 0xff, 0x16, 0x3a, 0x54, 0xff, 0x04, 0x2a, 0x44, 0xff, 0x09, 0x30, 0x48, 0xff, 0x1d, 0x44, 0x5c, 0xff, 0x29, 0x47, 0x7d, 0xff, 0x39, 0x3b, 0xdc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x40, 0xe2, 0xff, 0x3c, 0x80, 0xcd, 0xf8, 0x38, 0x88, 0xbb, 0x9e, + 0x38, 0x82, 0xbd, 0x68, 0x3c, 0x67, 0xd5, 0xfb, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x31, 0x41, 0xaf, 0xff, 0x22, 0x48, 0x65, 0xff, 0x21, 0x49, 0x62, 0xff, 0x23, 0x49, 0x64, 0xff, 0x24, 0x4b, 0x66, 0xff, 0x24, 0x4b, 0x66, 0xff, 0x23, 0x4a, 0x64, 0xff, 0x2b, 0x44, 0x92, 0xff, 0x39, 0x3b, 0xdb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3c, 0xd3, 0xff, 0x29, 0x46, 0x86, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x22, 0x49, 0x64, 0xff, 0x24, 0x4a, 0x65, 0xff, 0x25, 0x4c, 0x66, 0xff, 0x26, 0x4d, 0x66, 0xff, 0x23, 0x4a, 0x64, 0xff, 0x22, 0x49, 0x65, 0xff, 0x23, 0x49, 0x65, 0xff, 0x23, 0x49, 0x64, 0xff, 0x25, 0x4c, 0x65, 0xff, 0x25, 0x4c, 0x66, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x22, 0x4a, 0x65, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x63, 0xff, 0x22, 0x4b, 0x64, 0xff, 0x24, 0x4c, 0x65, 0xff, 0x23, 0x4a, 0x64, 0xff, 0x22, 0x48, 0x62, 0xff, 0x21, 0x48, 0x64, 0xff, 0x30, 0x41, 0xad, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x66, 0xd5, 0xfa, 0x39, 0x84, 0xbe, 0xa0, + 0x3b, 0x72, 0xc6, 0x79, 0x3a, 0x4c, 0xdd, 0xfe, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe3, 0xff, 0x39, 0x3a, 0xdc, 0xff, 0x2a, 0x46, 0x8a, 0xff, 0x21, 0x47, 0x61, 0xff, 0x22, 0x49, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x21, 0x48, 0x62, 0xff, 0x21, 0x49, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x2b, 0x44, 0x91, 0xff, 0x39, 0x3b, 0xda, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3c, 0xd6, 0xff, 0x28, 0x46, 0x86, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x21, 0x4a, 0x64, 0xff, 0x21, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x21, 0x4a, 0x64, 0xff, 0x21, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x49, 0x63, 0xff, 0x21, 0x48, 0x62, 0xff, 0x21, 0x49, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x21, 0x47, 0x61, 0xff, 0x29, 0x46, 0x86, 0xff, 0x38, 0x39, 0xdd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x4b, 0xde, 0xfd, 0x3a, 0x79, 0xc2, 0xab, + 0x3a, 0x5e, 0xd1, 0x95, 0x3a, 0x40, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x34, 0x3b, 0xc3, 0xff, 0x26, 0x4b, 0x74, 0xff, 0x22, 0x4a, 0x65, 0xff, 0x22, 0x4b, 0x66, 0xff, 0x23, 0x4b, 0x67, 0xff, 0x23, 0x4b, 0x67, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x23, 0x4c, 0x68, 0xff, 0x23, 0x4c, 0x68, 0xff, 0x23, 0x4c, 0x68, 0xff, 0x2c, 0x45, 0x95, 0xff, 0x39, 0x3b, 0xdb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3c, 0xd7, 0xff, 0x29, 0x47, 0x89, 0xff, 0x23, 0x4c, 0x68, 0xff, 0x23, 0x4d, 0x68, 0xff, 0x23, 0x4d, 0x68, 0xff, 0x23, 0x4c, 0x68, 0xff, 0x23, 0x4c, 0x68, 0xff, 0x23, 0x4c, 0x68, 0xff, 0x23, 0x4c, 0x68, 0xff, 0x23, 0x4d, 0x68, 0xff, 0x23, 0x4d, 0x68, 0xff, 0x23, 0x4d, 0x68, 0xff, 0x23, 0x4c, 0x68, 0xff, 0x23, 0x4c, 0x68, 0xff, 0x23, 0x4c, 0x68, 0xff, 0x23, 0x4b, 0x67, 0xff, 0x23, 0x4b, 0x67, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x22, 0x4a, 0x66, 0xff, 0x22, 0x4a, 0x65, 0xff, 0x25, 0x4b, 0x73, 0xff, 0x33, 0x3a, 0xc0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3f, 0xe1, 0xfe, 0x3a, 0x68, 0xcb, 0xbc, + 0x3c, 0x51, 0xd6, 0xb4, 0x39, 0x3c, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x2d, 0x34, 0xa2, 0xff, 0x1e, 0x3d, 0x54, 0xff, 0x1d, 0x3a, 0x50, 0xff, 0x1d, 0x3c, 0x51, 0xff, 0x1c, 0x3c, 0x4f, 0xff, 0x1c, 0x3d, 0x52, 0xff, 0x1d, 0x3d, 0x51, 0xff, 0x1d, 0x3c, 0x52, 0xff, 0x1d, 0x3c, 0x52, 0xff, 0x1d, 0x3c, 0x50, 0xff, 0x1d, 0x3c, 0x50, 0xff, 0x28, 0x3b, 0x86, 0xff, 0x39, 0x3a, 0xdb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3a, 0xd2, 0xff, 0x25, 0x3b, 0x78, 0xff, 0x1d, 0x3c, 0x50, 0xff, 0x1d, 0x3c, 0x50, 0xff, 0x1d, 0x3c, 0x50, 0xff, 0x1d, 0x3c, 0x50, 0xff, 0x1d, 0x3c, 0x50, 0xff, 0x1d, 0x3c, 0x50, 0xff, 0x1d, 0x3c, 0x50, 0xff, 0x1d, 0x3c, 0x50, 0xff, 0x1d, 0x3c, 0x50, 0xff, 0x1d, 0x3c, 0x50, 0xff, 0x1d, 0x3c, 0x52, 0xff, 0x1d, 0x3c, 0x52, 0xff, 0x1c, 0x3d, 0x51, 0xff, 0x1c, 0x3d, 0x52, 0xff, 0x1c, 0x3b, 0x50, 0xff, 0x1d, 0x3c, 0x50, 0xff, 0x1d, 0x3a, 0x50, 0xff, 0x1e, 0x3d, 0x53, 0xff, 0x2b, 0x32, 0x9e, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe1, 0xff, 0x3a, 0x56, 0xd3, 0xcf, + 0x3a, 0x48, 0xda, 0xca, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x2a, 0x3a, 0x93, 0xff, 0x23, 0x4c, 0x69, 0xff, 0x22, 0x4a, 0x66, 0xff, 0x23, 0x4b, 0x66, 0xff, 0x23, 0x4b, 0x66, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x23, 0x4d, 0x67, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x23, 0x4d, 0x67, 0xff, 0x2c, 0x46, 0x95, 0xff, 0x39, 0x3b, 0xdc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3c, 0xd4, 0xff, 0x29, 0x48, 0x88, 0xff, 0x23, 0x4d, 0x67, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x23, 0x4d, 0x67, 0xff, 0x23, 0x4d, 0x67, 0xff, 0x23, 0x4d, 0x67, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x23, 0x4d, 0x67, 0xff, 0x23, 0x4c, 0x67, 0xff, 0x23, 0x4b, 0x66, 0xff, 0x23, 0x4b, 0x66, 0xff, 0x22, 0x4a, 0x66, 0xff, 0x23, 0x4c, 0x69, 0xff, 0x2a, 0x3a, 0x92, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x4e, 0xd9, 0xdc, + 0x3a, 0x42, 0xdd, 0xd7, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3e, 0xe2, 0xff, 0x41, 0x82, 0xe5, 0xff, 0x44, 0xa6, 0xe7, 0xff, 0x44, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x41, 0x7f, 0xe5, 0xff, 0x3b, 0x40, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x47, 0xe3, 0xff, 0x42, 0x89, 0xe5, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x44, 0xa6, 0xe7, 0xff, 0x44, 0xa6, 0xe7, 0xff, 0x41, 0x83, 0xe5, 0xff, 0x3a, 0x3e, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x48, 0xdc, 0xe6, + 0x3a, 0x41, 0xdf, 0xe1, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x42, 0xe2, 0xff, 0x44, 0x8e, 0xeb, 0xff, 0x47, 0xaa, 0xed, 0xff, 0x47, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x42, 0x82, 0xe9, 0xff, 0x3b, 0x41, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x46, 0xe3, 0xff, 0x43, 0x8d, 0xea, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x46, 0xaa, 0xed, 0xff, 0x47, 0xaa, 0xed, 0xff, 0x47, 0xaa, 0xed, 0xff, 0x45, 0x91, 0xeb, 0xff, 0x3c, 0x43, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x44, 0xde, 0xec, + 0x3b, 0x3f, 0xdf, 0xe7, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x43, 0xe0, 0xff, 0x40, 0x87, 0xdc, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x3f, 0x7b, 0xdf, 0xff, 0x3a, 0x40, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x44, 0xe2, 0xff, 0x40, 0x84, 0xde, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x42, 0x9f, 0xdd, 0xff, 0x41, 0x88, 0xdc, 0xff, 0x3b, 0x44, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x42, 0xde, 0xf0, + 0x3a, 0x40, 0xdf, 0xe4, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x42, 0xe1, 0xff, 0x41, 0x87, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x40, 0x7b, 0xe0, 0xff, 0x3a, 0x40, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x45, 0xe2, 0xff, 0x41, 0x85, 0xe0, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x41, 0x88, 0xdf, 0xff, 0x3b, 0x43, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x43, 0xde, 0xef, + 0x3a, 0x42, 0xde, 0xdd, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x40, 0xe1, 0xff, 0x41, 0x82, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x46, 0xa1, 0xdf, 0xff, 0x46, 0xa1, 0xdf, 0xff, 0x46, 0xa1, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x46, 0xa1, 0xdf, 0xff, 0x46, 0xa1, 0xdf, 0xff, 0x46, 0xa1, 0xdf, 0xff, 0x44, 0xa0, 0xdf, 0xff, 0x40, 0x79, 0xe0, 0xff, 0x3a, 0x3f, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x46, 0xe2, 0xff, 0x42, 0x84, 0xe0, 0xff, 0x42, 0xa0, 0xdf, 0xff, 0x45, 0xa0, 0xdf, 0xff, 0x46, 0xa1, 0xdf, 0xff, 0x46, 0xa1, 0xdf, 0xff, 0x46, 0xa1, 0xdf, 0xff, 0x46, 0xa1, 0xdf, 0xff, 0x46, 0xa1, 0xdf, 0xff, 0x45, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x41, 0x83, 0xdf, 0xff, 0x3b, 0x40, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x45, 0xdc, 0xe9, + 0x3a, 0x45, 0xdb, 0xd0, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3f, 0x77, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x47, 0xa1, 0xde, 0xff, 0x41, 0x9e, 0xdd, 0xff, 0x2a, 0x95, 0xd9, 0xff, 0x25, 0x92, 0xd9, 0xff, 0x2a, 0x94, 0xda, 0xff, 0x42, 0x9f, 0xdd, 0xff, 0x46, 0xa2, 0xde, 0xff, 0x44, 0xa0, 0xde, 0xff, 0x45, 0xa1, 0xdf, 0xff, 0x2f, 0x96, 0xda, 0xff, 0x27, 0x91, 0xd9, 0xff, 0x26, 0x91, 0xd9, 0xff, 0x3b, 0x9c, 0xdd, 0xff, 0x48, 0xa2, 0xdf, 0xff, 0x40, 0x7b, 0xdf, 0xff, 0x3b, 0x40, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x45, 0xe1, 0xff, 0x47, 0x86, 0xe0, 0xff, 0x34, 0x98, 0xdb, 0xff, 0x25, 0x92, 0xd9, 0xff, 0x2a, 0x94, 0xda, 0xff, 0x2a, 0x94, 0xd9, 0xff, 0x2a, 0x94, 0xd9, 0xff, 0x2b, 0x94, 0xda, 0xff, 0x39, 0x9b, 0xdd, 0xff, 0x46, 0xa2, 0xdf, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x3f, 0x79, 0xde, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x4a, 0xda, 0xe2, + 0x39, 0x4b, 0xda, 0xbf, 0x3a, 0x3b, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3e, 0x67, 0xe0, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x44, 0xa0, 0xde, 0xff, 0x36, 0x98, 0xdb, 0xff, 0x44, 0xa1, 0xde, 0xff, 0x51, 0xa7, 0xe1, 0xff, 0x43, 0xa0, 0xdd, 0xff, 0x34, 0x99, 0xdc, 0xff, 0x46, 0xa2, 0xde, 0xff, 0x45, 0xa1, 0xde, 0xff, 0x40, 0x9e, 0xdf, 0xff, 0x44, 0x9f, 0xdf, 0xff, 0x4f, 0xa6, 0xe0, 0xff, 0x4d, 0xa5, 0xe0, 0xff, 0x38, 0x9a, 0xdc, 0xff, 0x42, 0x9f, 0xdd, 0xff, 0x49, 0xa3, 0xdf, 0xff, 0x3a, 0x79, 0xde, 0xff, 0x3a, 0x40, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x45, 0xe1, 0xff, 0x3e, 0x83, 0xde, 0xff, 0x4e, 0xa6, 0xdf, 0xff, 0x48, 0xa2, 0xde, 0xff, 0x48, 0xa2, 0xdf, 0xff, 0x4c, 0xa3, 0xdf, 0xff, 0x42, 0xa0, 0xdd, 0xff, 0x20, 0x8f, 0xd8, 0xff, 0x2e, 0x95, 0xda, 0xff, 0x48, 0xa3, 0xdf, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x3e, 0x6a, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3a, 0xe2, 0xff, 0x3b, 0x52, 0xd5, 0xd7, + 0x3a, 0x56, 0xd3, 0xa4, 0x3a, 0x3e, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x58, 0xe1, 0xff, 0x43, 0x9c, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x44, 0xa0, 0xde, 0xff, 0x2b, 0x94, 0xda, 0xff, 0x5d, 0xad, 0xe3, 0xff, 0xe8, 0xf3, 0xfc, 0xff, 0xfb, 0xfc, 0xfe, 0xff, 0xe9, 0xf4, 0xfb, 0xff, 0x5b, 0xad, 0xe3, 0xff, 0x28, 0x93, 0xda, 0xff, 0x3b, 0x9c, 0xdc, 0xff, 0x37, 0x9a, 0xdd, 0xff, 0xd0, 0xe7, 0xf7, 0xff, 0xf7, 0xfb, 0xfd, 0xff, 0xf7, 0xfb, 0xfe, 0xff, 0x7f, 0xbe, 0xe9, 0xff, 0x1e, 0x8e, 0xd7, 0xff, 0x3d, 0x9d, 0xdd, 0xff, 0x27, 0x91, 0xda, 0xff, 0x8b, 0xa1, 0xed, 0xff, 0x45, 0x45, 0xe4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x46, 0x4a, 0xe3, 0xff, 0xc8, 0xc9, 0xf6, 0xff, 0xec, 0xf5, 0xfc, 0xff, 0xf4, 0xf9, 0xfd, 0xff, 0xf6, 0xf9, 0xfd, 0xff, 0xed, 0xf6, 0xfc, 0xff, 0xb5, 0xda, 0xf2, 0xff, 0x3c, 0x9b, 0xdc, 0xff, 0x37, 0x99, 0xdb, 0xff, 0x47, 0xa2, 0xdf, 0xff, 0x43, 0x9c, 0xde, 0xff, 0x3d, 0x5a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3e, 0xe0, 0xff, 0x3a, 0x5f, 0xcf, 0xc6, + 0x3a, 0x68, 0xc9, 0x85, 0x3a, 0x43, 0xde, 0xfe, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x44, 0xe2, 0xff, 0x41, 0x8c, 0xde, 0xff, 0x43, 0x9f, 0xdd, 0xff, 0x42, 0x9f, 0xdd, 0xff, 0x25, 0x90, 0xd8, 0xff, 0x99, 0xca, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa0, 0xcf, 0xed, 0xff, 0x1f, 0x8d, 0xd6, 0xff, 0x33, 0x96, 0xda, 0xff, 0x3a, 0x9a, 0xdb, 0xff, 0xe8, 0xf3, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xe3, 0xf5, 0xff, 0x29, 0x93, 0xd9, 0xff, 0x1d, 0x8c, 0xd6, 0xff, 0x4e, 0xa4, 0xe0, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xb6, 0xb6, 0xf4, 0xff, 0x45, 0x45, 0xe4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x4e, 0x4e, 0xe4, 0xff, 0xca, 0xca, 0xf6, 0xff, 0xe3, 0xf0, 0xfa, 0xff, 0xe4, 0xf1, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb9, 0xdc, 0xf2, 0xff, 0x28, 0x91, 0xd8, 0xff, 0x40, 0x9e, 0xdd, 0xff, 0x44, 0x8f, 0xdf, 0xff, 0x3b, 0x46, 0xe1, 0xff, 0x39, 0x39, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x42, 0xde, 0xfe, 0x3a, 0x71, 0xc6, 0xb3, + 0x39, 0x7b, 0xc2, 0x70, 0x3a, 0x57, 0xd6, 0xfc, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3f, 0x73, 0xdf, 0xff, 0x42, 0x9f, 0xdd, 0xff, 0x3d, 0x9c, 0xdc, 0xff, 0x33, 0x96, 0xda, 0xff, 0xc3, 0xe0, 0xf3, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xcf, 0xe6, 0xf7, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xd2, 0xe8, 0xf7, 0xff, 0x2e, 0x94, 0xd9, 0xff, 0x28, 0x92, 0xd9, 0xff, 0x3b, 0x9b, 0xdc, 0xff, 0xe0, 0xee, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xfe, 0xff, 0xff, 0xf9, 0xfc, 0xfd, 0xff, 0x4e, 0xa5, 0xe0, 0xff, 0x02, 0x7d, 0xd2, 0xff, 0x88, 0xc3, 0xe9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfd, 0xfe, 0xff, 0xb3, 0xb3, 0xf3, 0xff, 0x3f, 0x41, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x47, 0x4b, 0xe4, 0xff, 0x28, 0x79, 0xda, 0xff, 0x1e, 0x8d, 0xd7, 0xff, 0x8e, 0xc5, 0xeb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xf8, 0xfc, 0xff, 0x38, 0x9a, 0xdc, 0xff, 0x34, 0x97, 0xdb, 0xff, 0x42, 0x77, 0xe0, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x55, 0xd7, 0xfc, 0x38, 0x7e, 0xbe, 0xa4, + 0x37, 0x85, 0xb9, 0x66, 0x39, 0x6f, 0xca, 0xfa, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x4f, 0xe0, 0xff, 0x44, 0x98, 0xde, 0xff, 0x33, 0x97, 0xda, 0xff, 0x4b, 0xa4, 0xdf, 0xff, 0xf4, 0xf9, 0xfd, 0xff, 0xe8, 0xf3, 0xfb, 0xff, 0x5f, 0xad, 0xe2, 0xff, 0xdc, 0xed, 0xf9, 0xff, 0xf8, 0xfc, 0xfe, 0xff, 0x48, 0xa2, 0xde, 0xff, 0x1b, 0x8b, 0xd7, 0xff, 0x3c, 0x9c, 0xdc, 0xff, 0xe7, 0xf3, 0xfa, 0xff, 0xfa, 0xfc, 0xfd, 0xff, 0xbd, 0xdd, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7b, 0xbb, 0xe7, 0xff, 0x00, 0x7b, 0xd0, 0xff, 0xd0, 0xe8, 0xf7, 0xff, 0xf2, 0xf9, 0xfc, 0xff, 0xb7, 0xdb, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x9a, 0xea, 0xff, 0x37, 0x3e, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x35, 0x42, 0xe0, 0xff, 0x10, 0x6c, 0xd6, 0xff, 0x57, 0xaa, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xf8, 0xfc, 0xff, 0x3c, 0x9c, 0xdc, 0xff, 0x33, 0x92, 0xdb, 0xff, 0x3e, 0x53, 0xe0, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x6e, 0xcb, 0xf9, 0x38, 0x84, 0xba, 0x9e, + 0x38, 0x86, 0xb8, 0x65, 0x39, 0x83, 0xc1, 0xf9, 0x3b, 0x4b, 0xde, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x42, 0x78, 0xdf, 0xff, 0x2b, 0x93, 0xd8, 0xff, 0x6a, 0xb3, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd9, 0xec, 0xf8, 0xff, 0x1d, 0x8e, 0xd6, 0xff, 0xbe, 0xde, 0xf4, 0xff, 0xff, 0xff, 0xff, 0xff, 0x76, 0xba, 0xe6, 0xff, 0x11, 0x86, 0xd4, 0xff, 0x3c, 0x9c, 0xdb, 0xff, 0xeb, 0xf4, 0xfc, 0xff, 0xfa, 0xfd, 0xfe, 0xff, 0x76, 0xb9, 0xe5, 0xff, 0xf3, 0xf9, 0xfd, 0xff, 0xb6, 0xda, 0xf1, 0xff, 0x14, 0x88, 0xd4, 0xff, 0xf1, 0xf8, 0xfd, 0xff, 0xb8, 0xdc, 0xf2, 0xff, 0x87, 0xc3, 0xe9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa9, 0xd3, 0xef, 0xff, 0x19, 0x67, 0xd7, 0xff, 0x41, 0x43, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x34, 0x41, 0xe0, 0xff, 0x59, 0x90, 0xe2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0xf9, 0xfd, 0xff, 0x3d, 0x9c, 0xdc, 0xff, 0x34, 0x75, 0xdc, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3c, 0x4a, 0xde, 0xff, 0x39, 0x82, 0xc1, 0xf7, 0x38, 0x86, 0xba, 0x9e, + 0x38, 0x86, 0xb8, 0x65, 0x39, 0x89, 0xbe, 0xf8, 0x3d, 0x6c, 0xd6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x48, 0xe2, 0xff, 0x28, 0x87, 0xd8, 0xff, 0x9c, 0xcc, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xd6, 0xf0, 0xff, 0x00, 0x71, 0xcb, 0xff, 0x95, 0xc8, 0xec, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa6, 0xd1, 0xef, 0xff, 0x0d, 0x83, 0xd2, 0xff, 0x38, 0x99, 0xda, 0xff, 0xec, 0xf5, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0x4a, 0xa3, 0xde, 0xff, 0xbe, 0xdf, 0xf2, 0xff, 0xe7, 0xf3, 0xfb, 0xff, 0x75, 0xb9, 0xe5, 0xff, 0xfa, 0xfc, 0xfe, 0xff, 0x73, 0xb8, 0xe6, 0xff, 0x7d, 0xbd, 0xe8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa7, 0xd1, 0xee, 0xff, 0x07, 0x81, 0xd1, 0xff, 0x8b, 0xa1, 0xec, 0xff, 0x46, 0x46, 0xe4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x4a, 0x4d, 0xe4, 0xff, 0xca, 0xca, 0xf7, 0xff, 0xde, 0xee, 0xf9, 0xff, 0x31, 0x8c, 0xd9, 0xff, 0x3a, 0x48, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x6b, 0xd6, 0xff, 0x39, 0x89, 0xbe, 0xf6, 0x38, 0x86, 0xba, 0x9e, + 0x38, 0x86, 0xb8, 0x65, 0x39, 0x89, 0xbe, 0xf8, 0x3e, 0x8a, 0xce, 0xff, 0x3b, 0x4e, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x34, 0x5b, 0xde, 0xff, 0xd4, 0xe8, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6d, 0xb4, 0xe4, 0xff, 0x00, 0x66, 0xc8, 0xff, 0x64, 0xae, 0xe2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xda, 0xec, 0xf9, 0xff, 0x21, 0x8c, 0xd6, 0xff, 0x2b, 0x93, 0xd8, 0xff, 0xec, 0xf5, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0x41, 0x9e, 0xdc, 0xff, 0x70, 0xb5, 0xe4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xfa, 0xfd, 0xff, 0xf8, 0xfb, 0xfe, 0xff, 0x2f, 0x94, 0xd9, 0xff, 0x86, 0xc1, 0xe9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa6, 0xd1, 0xee, 0xff, 0x07, 0x80, 0xd1, 0xff, 0xb8, 0xdb, 0xf2, 0xff, 0xb7, 0xb7, 0xf4, 0xff, 0x46, 0x46, 0xe4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x52, 0x53, 0xe6, 0xff, 0x62, 0x96, 0xe3, 0xff, 0x35, 0x62, 0xdd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3b, 0x4c, 0xe1, 0xff, 0x3d, 0x89, 0xcf, 0xff, 0x38, 0x89, 0xbe, 0xf6, 0x38, 0x84, 0xb8, 0x9e, + 0x38, 0x86, 0xb8, 0x65, 0x39, 0x89, 0xbe, 0xf8, 0x3e, 0x93, 0xcc, 0xff, 0x3e, 0x76, 0xda, 0xff, 0x39, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x9f, 0xa2, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xef, 0xf9, 0xff, 0xc4, 0xe3, 0xf6, 0xff, 0xdd, 0xee, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0x41, 0x9e, 0xdc, 0xff, 0x1a, 0x89, 0xd4, 0xff, 0xee, 0xf6, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x4c, 0xa4, 0xdd, 0xff, 0x2e, 0x94, 0xd8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd5, 0xe9, 0xf6, 0xff, 0x05, 0x7e, 0xd0, 0xff, 0x9d, 0xcd, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0xd1, 0xee, 0xff, 0x07, 0x80, 0xd1, 0xff, 0xb8, 0xda, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0x99, 0xa7, 0xef, 0xff, 0x3d, 0x41, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3d, 0xe2, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3a, 0xe2, 0xff, 0x3f, 0x74, 0xda, 0xff, 0x3e, 0x93, 0xcc, 0xff, 0x39, 0x89, 0xbe, 0xf6, 0x38, 0x84, 0xb8, 0x9e, + 0x38, 0x86, 0xb8, 0x65, 0x39, 0x88, 0xbd, 0xf8, 0x3d, 0x91, 0xcb, 0xff, 0x40, 0x98, 0xd5, 0xff, 0x3d, 0x60, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x42, 0x42, 0xe3, 0xff, 0xb1, 0xb1, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6d, 0xb4, 0xe4, 0xff, 0x0f, 0x83, 0xd1, 0xff, 0xec, 0xf6, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0x65, 0xaf, 0xe2, 0xff, 0x0a, 0x81, 0xd0, 0xff, 0xbc, 0xdd, 0xf3, 0xff, 0xef, 0xf7, 0xfc, 0xff, 0x81, 0xbe, 0xe7, 0xff, 0x00, 0x7a, 0xcd, 0xff, 0xaa, 0xd4, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0xd1, 0xee, 0xff, 0x07, 0x80, 0xcf, 0xff, 0xb8, 0xdb, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xcd, 0xec, 0xff, 0x15, 0x62, 0xd4, 0xff, 0x38, 0x40, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x5f, 0xdf, 0xff, 0x3f, 0x97, 0xd5, 0xff, 0x3e, 0x91, 0xcb, 0xff, 0x39, 0x88, 0xbd, 0xf6, 0x38, 0x84, 0xb8, 0x9e, + 0x38, 0x86, 0xb8, 0x65, 0x39, 0x88, 0xbd, 0xf8, 0x3d, 0x91, 0xcb, 0xff, 0x3f, 0x9a, 0xd5, 0xff, 0x40, 0x91, 0xdb, 0xff, 0x3b, 0x4d, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x41, 0x42, 0xe2, 0xff, 0x38, 0x72, 0xdc, 0xff, 0x42, 0x9f, 0xda, 0xff, 0x35, 0x96, 0xd8, 0xff, 0xbc, 0xdc, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa8, 0xd2, 0xee, 0xff, 0x11, 0x85, 0xd1, 0xff, 0xe2, 0xf1, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0x72, 0xb6, 0xe5, 0xff, 0x1b, 0x8b, 0xd3, 0xff, 0x35, 0x98, 0xd9, 0xff, 0x3a, 0x9a, 0xda, 0xff, 0x2f, 0x93, 0xd7, 0xff, 0x1e, 0x8b, 0xd4, 0xff, 0xaa, 0xd5, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa6, 0xd2, 0xee, 0xff, 0x07, 0x80, 0xcf, 0xff, 0xbb, 0xdc, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xae, 0xd6, 0xee, 0xff, 0x1f, 0x8c, 0xd4, 0xff, 0x3c, 0x80, 0xdc, 0xff, 0x3a, 0x3d, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x4b, 0xe1, 0xff, 0x40, 0x8f, 0xdb, 0xff, 0x3f, 0x9a, 0xd5, 0xff, 0x3d, 0x91, 0xca, 0xff, 0x39, 0x88, 0xbe, 0xf6, 0x38, 0x84, 0xb8, 0x9e, + 0x38, 0x86, 0xb8, 0x65, 0x39, 0x88, 0xbd, 0xf8, 0x3d, 0x92, 0xcb, 0xff, 0x3f, 0x99, 0xd5, 0xff, 0x45, 0x9f, 0xdb, 0xff, 0x30, 0x80, 0xd9, 0xff, 0x39, 0x46, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3b, 0xe2, 0xff, 0x35, 0x63, 0xdc, 0xff, 0x08, 0x73, 0xcf, 0xff, 0x74, 0xb7, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xf2, 0xfb, 0xff, 0x2e, 0x93, 0xd7, 0xff, 0xd8, 0xeb, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0x72, 0xb6, 0xe4, 0xff, 0x22, 0x8d, 0xd4, 0xff, 0x3c, 0x99, 0xda, 0xff, 0x2e, 0x92, 0xd7, 0xff, 0x3b, 0x99, 0xdb, 0xff, 0x1e, 0x8a, 0xd5, 0xff, 0xad, 0xd5, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xac, 0xd4, 0xef, 0xff, 0x03, 0x7c, 0xce, 0xff, 0xc0, 0xde, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb5, 0xd9, 0xf1, 0xff, 0x20, 0x82, 0xd6, 0xff, 0x3c, 0x6e, 0xdd, 0xff, 0x3b, 0x3e, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x46, 0xe2, 0xff, 0x40, 0x87, 0xdc, 0xff, 0x41, 0x9c, 0xda, 0xff, 0x3f, 0x99, 0xd5, 0xff, 0x3d, 0x92, 0xcb, 0xff, 0x39, 0x88, 0xbd, 0xf6, 0x38, 0x84, 0xb8, 0x9e, + 0x35, 0x83, 0xb8, 0x65, 0x39, 0x88, 0xbc, 0xf8, 0x3d, 0x92, 0xca, 0xff, 0x3f, 0x99, 0xd4, 0xff, 0x43, 0x9d, 0xd9, 0xff, 0x37, 0x96, 0xd8, 0xff, 0x3f, 0x84, 0xdb, 0xff, 0x45, 0x4d, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x4d, 0xe1, 0xff, 0x43, 0x7e, 0xdd, 0xff, 0x8a, 0xc1, 0xe8, 0xff, 0x8b, 0xc2, 0xe8, 0xff, 0x42, 0x9e, 0xdb, 0xff, 0x71, 0xb5, 0xe3, 0xff, 0x8d, 0xc3, 0xe8, 0xff, 0x4e, 0xa3, 0xdd, 0xff, 0x36, 0x96, 0xd8, 0xff, 0x47, 0x9f, 0xdb, 0xff, 0x49, 0xa0, 0xdb, 0xff, 0x45, 0x9e, 0xdb, 0xff, 0x33, 0x95, 0xd7, 0xff, 0x61, 0xad, 0xe0, 0xff, 0x91, 0xc5, 0xea, 0xff, 0x65, 0xaf, 0xe1, 0xff, 0x2a, 0x91, 0xd5, 0xff, 0x68, 0xb0, 0xe2, 0xff, 0x90, 0xc3, 0xea, 0xff, 0x57, 0x8b, 0xe1, 0xff, 0x39, 0x4d, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x47, 0xe1, 0xff, 0x40, 0x84, 0xdc, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x41, 0x9c, 0xd9, 0xff, 0x3f, 0x99, 0xd4, 0xff, 0x3d, 0x92, 0xca, 0xff, 0x39, 0x88, 0xbc, 0xf6, 0x38, 0x84, 0xb8, 0x9e, + 0x30, 0x83, 0xbd, 0x65, 0x3a, 0x88, 0xbc, 0xf8, 0x3d, 0x91, 0xc9, 0xff, 0x40, 0x99, 0xd4, 0xff, 0x41, 0x9c, 0xd9, 0xff, 0x46, 0x9e, 0xda, 0xff, 0x44, 0x9e, 0xda, 0xff, 0x2d, 0x7c, 0xd8, 0xff, 0x37, 0x4a, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3d, 0xe2, 0xff, 0x35, 0x53, 0xdd, 0xff, 0x30, 0x76, 0xda, 0xff, 0x43, 0x95, 0xdb, 0xff, 0x2e, 0x91, 0xd6, 0xff, 0x25, 0x8e, 0xd5, 0xff, 0x3c, 0x9a, 0xd9, 0xff, 0x47, 0x9f, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x43, 0x9d, 0xda, 0xff, 0x47, 0xa0, 0xda, 0xff, 0x35, 0x95, 0xd7, 0xff, 0x25, 0x8d, 0xd5, 0xff, 0x34, 0x95, 0xd7, 0xff, 0x49, 0x99, 0xdc, 0xff, 0x34, 0x78, 0xda, 0xff, 0x34, 0x51, 0xde, 0xff, 0x3a, 0x3d, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x4c, 0xe0, 0xff, 0x40, 0x85, 0xdb, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x41, 0x9c, 0xd9, 0xff, 0x40, 0x99, 0xd5, 0xff, 0x3c, 0x91, 0xca, 0xff, 0x38, 0x87, 0xbc, 0xf5, 0x37, 0x84, 0xb8, 0x9d, + 0x51, 0x83, 0xa2, 0x71, 0x34, 0x89, 0xc0, 0xfc, 0x3a, 0x90, 0xca, 0xff, 0x40, 0x99, 0xd3, 0xff, 0x40, 0x9d, 0xd9, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x91, 0xdb, 0xff, 0x3c, 0x56, 0xe0, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x39, 0x39, 0xe1, 0xff, 0x3c, 0x4d, 0xe0, 0xff, 0x3f, 0x69, 0xdf, 0xff, 0x3f, 0x79, 0xde, 0xff, 0x40, 0x85, 0xdc, 0xff, 0x40, 0x8f, 0xdb, 0xff, 0x41, 0x94, 0xdb, 0xff, 0x40, 0x94, 0xdb, 0xff, 0x41, 0x94, 0xdb, 0xff, 0x40, 0x90, 0xdb, 0xff, 0x40, 0x86, 0xdc, 0xff, 0x3f, 0x79, 0xdd, 0xff, 0x3e, 0x68, 0xde, 0xff, 0x3b, 0x4d, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x3b, 0x55, 0xe0, 0xff, 0x40, 0x90, 0xdb, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x40, 0x9c, 0xd9, 0xff, 0x3e, 0x98, 0xd4, 0xff, 0x3d, 0x90, 0xc8, 0xff, 0x38, 0x88, 0xbc, 0xfb, 0x35, 0x87, 0xb8, 0xac, + 0x51, 0x7e, 0xa1, 0x4f, 0x36, 0x82, 0xbb, 0xfb, 0x39, 0x92, 0xca, 0xff, 0x41, 0x98, 0xd1, 0xff, 0x40, 0x9b, 0xd8, 0xff, 0x40, 0x9d, 0xda, 0xff, 0x40, 0x9d, 0xda, 0xff, 0x40, 0x9d, 0xda, 0xff, 0x40, 0x9c, 0xda, 0xff, 0x40, 0x98, 0xda, 0xff, 0x3e, 0x71, 0xde, 0xff, 0x3b, 0x48, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x40, 0xe0, 0xff, 0x3a, 0x48, 0xe1, 0xff, 0x3c, 0x50, 0xe1, 0xff, 0x3b, 0x50, 0xdf, 0xff, 0x3c, 0x50, 0xe1, 0xff, 0x3c, 0x4a, 0xe1, 0xff, 0x3a, 0x41, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x47, 0xe1, 0xff, 0x3d, 0x70, 0xde, 0xff, 0x40, 0x98, 0xda, 0xff, 0x40, 0x9d, 0xda, 0xff, 0x40, 0x9c, 0xda, 0xff, 0x40, 0x9c, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x40, 0x9b, 0xd8, 0xff, 0x3f, 0x98, 0xd2, 0xff, 0x3b, 0x92, 0xc8, 0xff, 0x3b, 0x82, 0xb7, 0xfa, 0x39, 0x81, 0xb5, 0x8e, + 0x49, 0x92, 0xb6, 0x07, 0x3c, 0x7c, 0xb2, 0xc0, 0x3b, 0x89, 0xc0, 0xff, 0x3e, 0x94, 0xce, 0xff, 0x3e, 0x97, 0xd2, 0xff, 0x40, 0x9a, 0xd5, 0xff, 0x43, 0x9b, 0xd5, 0xff, 0x43, 0x9b, 0xd5, 0xff, 0x43, 0x9b, 0xd5, 0xff, 0x43, 0x9b, 0xd5, 0xff, 0x43, 0x9b, 0xd5, 0xff, 0x41, 0x89, 0xd7, 0xff, 0x3e, 0x65, 0xdc, 0xff, 0x3b, 0x48, 0xe0, 0xff, 0x3b, 0x3b, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x48, 0xe0, 0xff, 0x3e, 0x64, 0xdc, 0xff, 0x41, 0x88, 0xd7, 0xff, 0x43, 0x9b, 0xd5, 0xff, 0x43, 0x9b, 0xd5, 0xff, 0x43, 0x9b, 0xd5, 0xff, 0x43, 0x9b, 0xd5, 0xff, 0x42, 0x9b, 0xd5, 0xff, 0x40, 0x99, 0xd5, 0xff, 0x3f, 0x96, 0xd2, 0xff, 0x3e, 0x94, 0xce, 0xff, 0x3b, 0x89, 0xc1, 0xff, 0x3a, 0x80, 0xb5, 0xc0, 0x42, 0x73, 0xad, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xa6, 0xca, 0x2b, 0x3a, 0x82, 0xb9, 0xe4, 0x3b, 0x88, 0xbf, 0xff, 0x3b, 0x91, 0xcb, 0xff, 0x3f, 0x93, 0xcc, 0xff, 0x30, 0x8f, 0xcd, 0xff, 0x2d, 0x8f, 0xcf, 0xff, 0x2f, 0x90, 0xcf, 0xff, 0x2f, 0x90, 0xcf, 0xff, 0x2f, 0x8f, 0xcf, 0xff, 0x2f, 0x8e, 0xcf, 0xff, 0x2b, 0x8e, 0xd0, 0xff, 0x34, 0x84, 0xd2, 0xff, 0x3f, 0x6c, 0xd5, 0xff, 0x3b, 0x52, 0xdc, 0xff, 0x3a, 0x3c, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3c, 0x53, 0xdd, 0xff, 0x3e, 0x6c, 0xd5, 0xff, 0x33, 0x82, 0xd1, 0xff, 0x2c, 0x8f, 0xcf, 0xff, 0x2f, 0x90, 0xcf, 0xff, 0x2f, 0x8f, 0xcf, 0xff, 0x2f, 0x8f, 0xcf, 0xff, 0x2f, 0x8f, 0xcf, 0xff, 0x2c, 0x8f, 0xd0, 0xff, 0x31, 0x8f, 0xcf, 0xff, 0x40, 0x92, 0xcb, 0xff, 0x3b, 0x91, 0xcb, 0xff, 0x3b, 0x88, 0xbf, 0xff, 0x3a, 0x82, 0xb9, 0xe4, 0x2a, 0xac, 0xd0, 0x2b, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x9b, 0xc7, 0x29, 0x3d, 0x7c, 0xb6, 0x92, 0x3e, 0x88, 0xbc, 0xc5, 0x30, 0x87, 0xc0, 0xc5, 0x32, 0x88, 0xc0, 0x9f, 0x3c, 0x8b, 0xc1, 0x7f, 0x37, 0x8b, 0xc0, 0x86, 0x39, 0x8a, 0xc1, 0x87, 0x39, 0x8b, 0xc0, 0x86, 0x39, 0x8b, 0xc0, 0x86, 0x3e, 0x8b, 0xbf, 0x7f, 0x2c, 0x86, 0xc4, 0x98, 0x2c, 0x85, 0xc4, 0xc1, 0x3d, 0x83, 0xc2, 0xc3, 0x3a, 0x76, 0xc8, 0xcb, 0x3a, 0x66, 0xd0, 0xd7, 0x3c, 0x56, 0xd5, 0xe3, 0x3b, 0x4e, 0xda, 0xec, 0x3a, 0x47, 0xdc, 0xf2, 0x3a, 0x43, 0xde, 0xf5, 0x3a, 0x42, 0xdf, 0xf7, 0x3a, 0x43, 0xde, 0xf5, 0x3a, 0x47, 0xdc, 0xf2, 0x3a, 0x4d, 0xda, 0xeb, 0x3a, 0x56, 0xd7, 0xe3, 0x3a, 0x65, 0xd0, 0xd7, 0x3a, 0x74, 0xc8, 0xcb, 0x3d, 0x83, 0xc2, 0xc3, 0x2a, 0x86, 0xc2, 0xc0, 0x29, 0x86, 0xc2, 0x9a, 0x3e, 0x8d, 0xc1, 0x7f, 0x39, 0x8b, 0xc0, 0x86, 0x39, 0x8b, 0xc0, 0x86, 0x39, 0x8a, 0xc1, 0x87, 0x39, 0x8a, 0xc1, 0x87, 0x3c, 0x8b, 0xc1, 0x7f, 0x32, 0x88, 0xc3, 0x9e, 0x2f, 0x87, 0xc2, 0xc5, 0x3e, 0x89, 0xba, 0xc5, 0x3d, 0x7c, 0xb4, 0x92, 0x32, 0x95, 0xc7, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0xbf, 0x08, 0x00, 0x80, 0xbf, 0x04, 0xb8, 0xb2, 0xac, 0x2b, 0xc9, 0xb3, 0xa7, 0x5a, 0xb9, 0xae, 0xa8, 0x4c, 0xbb, 0xb1, 0xa7, 0x4b, 0xbc, 0xae, 0xa8, 0x4c, 0xbc, 0xb2, 0xab, 0x4c, 0xca, 0xb3, 0xa4, 0x57, 0xa8, 0xa4, 0x9f, 0x35, 0x00, 0x80, 0xd5, 0x06, 0x2a, 0x80, 0xd5, 0x06, 0x33, 0x99, 0xcc, 0x05, 0x33, 0x99, 0xcc, 0x05, 0x33, 0x99, 0xcc, 0x05, 0x33, 0x99, 0xcc, 0x05, 0x33, 0x99, 0xcc, 0x05, 0x33, 0x99, 0xcc, 0x05, 0x33, 0x99, 0xcc, 0x05, 0x33, 0x99, 0xcc, 0x05, 0x33, 0x99, 0xcc, 0x05, 0x33, 0x99, 0xcc, 0x05, 0x33, 0x99, 0xcc, 0x05, 0x33, 0x99, 0xcc, 0x05, 0x33, 0x99, 0xcc, 0x05, 0x2a, 0x80, 0xaa, 0x06, 0x00, 0x66, 0xcc, 0x05, 0xba, 0xb1, 0xac, 0x34, 0xca, 0xb3, 0xa7, 0x57, 0xb9, 0xae, 0xa8, 0x4c, 0xbc, 0xae, 0xa8, 0x4c, 0xbb, 0xb1, 0xa7, 0x4b, 0xbc, 0xb2, 0xab, 0x4c, 0xc6, 0xb3, 0xa4, 0x5a, 0xb2, 0xa6, 0xa6, 0x2b, 0x00, 0x80, 0xbf, 0x04, 0x40, 0x80, 0xbf, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcd, 0xb6, 0xaa, 0x90, 0xc3, 0xb4, 0xac, 0xff, 0xc4, 0xb6, 0xac, 0xff, 0xc3, 0xb5, 0xab, 0xff, 0xc3, 0xb5, 0xab, 0xff, 0xc6, 0xb8, 0xaf, 0xff, 0xc0, 0xb4, 0xad, 0xff, 0xbe, 0xa1, 0x8d, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xb9, 0xa6, 0xb5, 0xc1, 0xb4, 0xac, 0xff, 0xc4, 0xb6, 0xab, 0xff, 0xc3, 0xb5, 0xab, 0xff, 0xc3, 0xb5, 0xab, 0xff, 0xc8, 0xb9, 0xb0, 0xff, 0xc0, 0xb1, 0xa8, 0xff, 0xb6, 0xa1, 0x93, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xa3, 0xa3, 0x2f, 0xa0, 0xa2, 0xa3, 0xcb, 0xa5, 0xa5, 0xa6, 0xee, 0xa4, 0xa4, 0xa5, 0xdd, 0xa5, 0xa3, 0xa6, 0xdc, 0xa7, 0xa6, 0xa7, 0xec, 0x9b, 0x9b, 0x9d, 0xd2, 0x93, 0x8f, 0x8b, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0xa9, 0xa5, 0x41, 0xa1, 0xa1, 0xa3, 0xd3, 0xa5, 0xa5, 0xa5, 0xec, 0xa3, 0xa3, 0xa5, 0xdc, 0xa5, 0xa5, 0xa6, 0xdd, 0xa6, 0xa6, 0xa6, 0xee, 0x9a, 0x9a, 0x9c, 0xc9, 0x96, 0x90, 0x90, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#endif +}; + +const lv_img_dsc_t img_amp_disabled = { + .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA, + .header.always_zero = 0, + .header.reserved = 0, + .header.w = 45, + .header.h = 53, + .data_size = 2385 * LV_IMG_PX_SIZE_ALPHA_BYTE, + .data = img_amp_disabled_map, +}; diff --git a/source/main/ui_generated_480x320land/ui_image_cab_disabled.c b/source/main/ui_generated_480x320land/ui_image_cab_disabled.c new file mode 100644 index 00000000..3a81fe79 --- /dev/null +++ b/source/main/ui_generated_480x320land/ui_image_cab_disabled.c @@ -0,0 +1,265 @@ +#ifdef __has_include + #if __has_include("lvgl.h") + #ifndef LV_LVGL_H_INCLUDE_SIMPLE + #define LV_LVGL_H_INCLUDE_SIMPLE + #endif + #endif +#endif +#ifdef __has_include + #if __has_include("lvgl.h") + #ifndef LV_LVGL_H_INCLUDE_SIMPLE + #define LV_LVGL_H_INCLUDE_SIMPLE + #endif + #endif +#endif + +#if defined(LV_LVGL_H_INCLUDE_SIMPLE) + #include "lvgl.h" +#else + #include "lvgl/lvgl.h" +#endif + + +#ifndef LV_ATTRIBUTE_MEM_ALIGN +#define LV_ATTRIBUTE_MEM_ALIGN +#endif + +#ifndef LV_ATTRIBUTE_IMG_IMG_CAB_DISABLED +#define LV_ATTRIBUTE_IMG_IMG_CAB_DISABLED +#endif + +const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_IMG_CAB_DISABLED uint8_t img_cab_disabled_map[] = { +#if LV_COLOR_DEPTH == 1 || LV_COLOR_DEPTH == 8 + /*Pixel format: Alpha 8 bit, Red: 3 bit, Green: 3 bit, Blue: 2 bit*/ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x5e, 0xf1, 0xd7, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xfd, 0xf1, 0xfe, 0xf1, 0xfe, 0xf1, 0xfe, 0xf1, 0xfe, 0xf1, 0xfe, 0xf1, 0xfe, 0xf1, 0xfe, 0xf1, 0xfe, 0xf1, 0xfe, 0xf1, 0xfe, 0xf1, 0xfe, 0xf1, 0xfe, 0xf1, 0xfe, 0xf1, 0xfd, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xd7, 0xf1, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x6e, 0xf1, 0xff, 0xf1, 0xe4, 0xf1, 0xa0, 0xf1, 0xa6, 0xf1, 0xab, 0xf1, 0xaa, 0xf1, 0xaa, 0xf1, 0xaa, 0xf1, 0xaa, 0xf1, 0xaa, 0xf1, 0xaa, 0xf1, 0xaa, 0xf1, 0xaa, 0xf1, 0xaa, 0xf1, 0xaa, 0xf1, 0xaa, 0xf1, 0xaa, 0xf1, 0xaa, 0xf1, 0xab, 0xf1, 0xa5, 0xf1, 0xa0, 0xf1, 0xe4, 0xf1, 0xff, 0xf1, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x26, 0xf1, 0xff, 0xf1, 0xc5, 0xf1, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x16, 0xf1, 0xc5, 0xf1, 0xff, 0xf1, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x5a, 0xf5, 0xff, 0xf5, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x43, 0xf5, 0xff, 0xf1, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xd0, 0x04, 0xd0, 0x3d, 0xd0, 0x43, 0xd0, 0x3b, 0xd0, 0x3c, 0xd0, 0x3b, 0xd0, 0x32, 0xf0, 0x8f, 0xf5, 0xff, 0xd0, 0x65, 0xd0, 0x31, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x31, 0xd0, 0x65, 0xf5, 0xff, 0xf0, 0x8f, 0xd0, 0x32, 0xd0, 0x3b, 0xd0, 0x3c, 0xd0, 0x3c, 0xd0, 0x42, 0xd0, 0x3d, 0xd0, 0x04, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xd1, 0x1e, 0xd0, 0xc0, 0xf0, 0xf7, 0xf0, 0xfa, 0xf0, 0xf6, 0xd1, 0xf7, 0xf0, 0xf7, 0xf0, 0xf0, 0xf0, 0xf9, 0xf0, 0xff, 0xf0, 0xf6, 0xf0, 0xef, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xf7, 0xf0, 0xef, 0xf0, 0xf6, 0xf0, 0xff, 0xf0, 0xf9, 0xf0, 0xf0, 0xf0, 0xf7, 0xd1, 0xf7, 0xf0, 0xf7, 0xf0, 0xfa, 0xf0, 0xf7, 0xd0, 0xc0, 0xd1, 0x1e, 0x00, 0x00, + 0xd1, 0x15, 0xd0, 0xb6, 0xf0, 0xff, 0xd0, 0xff, 0x6d, 0xff, 0xad, 0xff, 0xf0, 0xff, 0xad, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xad, 0xff, 0xf0, 0xff, 0xad, 0xff, 0x6d, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xd0, 0xb6, 0xd0, 0x14, + 0xd0, 0x95, 0xf0, 0xfc, 0xd0, 0xfb, 0x29, 0xf1, 0x05, 0xfb, 0x69, 0xff, 0xf4, 0xff, 0x49, 0xff, 0x05, 0xff, 0x25, 0xff, 0x25, 0xff, 0x25, 0xff, 0x25, 0xff, 0x25, 0xff, 0x25, 0xff, 0x45, 0xff, 0x69, 0xff, 0x89, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xa9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x45, 0xff, 0x25, 0xff, 0x25, 0xff, 0x25, 0xff, 0x25, 0xff, 0x25, 0xff, 0x25, 0xff, 0x25, 0xff, 0x05, 0xff, 0x49, 0xff, 0xf4, 0xff, 0x69, 0xff, 0x05, 0xfb, 0x29, 0xf2, 0xd1, 0xfc, 0xf0, 0xfd, 0xd0, 0x94, + 0xd0, 0xaa, 0xf0, 0xfc, 0x69, 0xf9, 0x05, 0xfb, 0x05, 0xff, 0x6d, 0xff, 0xf4, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x6d, 0xff, 0x6d, 0xff, 0x8d, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0x6d, 0xff, 0x6d, 0xff, 0x6d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x8d, 0xff, 0xf4, 0xff, 0x6d, 0xff, 0x05, 0xff, 0x05, 0xfc, 0x69, 0xfa, 0xf4, 0xfc, 0xd0, 0xaa, + 0xd0, 0x9e, 0xf0, 0xf6, 0xad, 0xff, 0x6d, 0xff, 0x6d, 0xff, 0xd1, 0xff, 0xf0, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xf0, 0xff, 0xd1, 0xff, 0x6d, 0xff, 0x8d, 0xff, 0xad, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xd1, 0xf6, 0xf0, 0xff, 0xf4, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0x8d, 0xff, 0x29, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xa9, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0x8d, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf4, 0xff, 0xf0, 0xff, 0xd1, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0x8d, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xad, 0xff, 0x25, 0xff, 0x49, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x25, 0xff, 0xad, 0xff, 0x8d, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0x69, 0xff, 0x05, 0xff, 0x69, 0xff, 0xad, 0xff, 0x49, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x49, 0xff, 0x29, 0xff, 0xad, 0xff, 0x69, 0xff, 0x05, 0xff, 0x69, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0x8d, 0xff, 0x05, 0xff, 0x8d, 0xff, 0xad, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x49, 0xff, 0xad, 0xff, 0x8d, 0xff, 0x05, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0x8d, 0xff, 0x05, 0xff, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0xad, 0xff, 0x8d, 0xff, 0x05, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0x8d, 0xff, 0x05, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0x8d, 0xff, 0x05, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0x8d, 0xff, 0x45, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x8d, 0xff, 0x05, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x25, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8c, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x69, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf7, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8c, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xed, 0xfa, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0xa3, 0xed, 0xfc, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x89, 0xff, 0x88, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x25, 0xff, 0x25, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x88, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x8c, 0xff, 0x8d, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xcd, 0xb3, 0xe9, 0xfe, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x64, 0xff, 0x68, 0xff, 0x88, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x25, 0xff, 0x49, 0xff, 0x49, 0xff, 0x25, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x64, 0xff, 0x88, 0xff, 0x6d, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf0, 0xf7, 0xd0, 0x9e, + 0xed, 0xc6, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x68, 0xff, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x85, 0xff, 0xb7, 0xff, 0xff, 0xff, 0xff, 0xff, 0x92, 0xff, 0x25, 0xff, 0x49, 0xff, 0x29, 0xff, 0x92, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xff, 0x68, 0xff, 0x68, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xf9, 0xd0, 0x9e, + 0xe9, 0xd8, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xb7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xff, 0x68, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xfb, 0xd0, 0x9e, + 0xe9, 0xe7, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x8d, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xff, 0x89, 0xff, 0x8d, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6d, 0xff, 0x25, 0xff, 0x49, 0xff, 0xb6, 0xff, 0xff, 0xff, 0xdb, 0xff, 0x69, 0xff, 0x68, 0xff, 0xb6, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x49, 0xff, 0x49, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xfc, 0xd0, 0x9e, + 0xe9, 0xf0, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x8d, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x44, 0xff, 0x44, 0xff, 0xb6, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd2, 0xff, 0xff, 0xff, 0x92, 0xff, 0x24, 0xff, 0x49, 0xff, 0xb7, 0xff, 0xff, 0xff, 0xb7, 0xff, 0x20, 0xff, 0x40, 0xff, 0x69, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x49, 0xff, 0x49, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xfd, 0xd0, 0x9e, + 0xe9, 0xf7, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0x91, 0xff, 0x68, 0xff, 0x8c, 0xff, 0x8d, 0xff, 0x92, 0xff, 0x6e, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xdb, 0xff, 0x24, 0xff, 0x25, 0xff, 0xb7, 0xff, 0xff, 0xff, 0xdb, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xff, 0x88, 0xff, 0x68, 0xff, 0x49, 0xff, 0x29, 0xff, 0xad, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xfe, 0xd0, 0x9e, + 0xe9, 0xfb, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0x91, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x25, 0xff, 0x49, 0xff, 0x49, 0xff, 0x89, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf7, 0xff, 0x49, 0xff, 0x24, 0xff, 0xb7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x64, 0xff, 0x8d, 0xff, 0x49, 0xff, 0x29, 0xff, 0xad, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xfe, 0xd0, 0x9e, + 0xe9, 0xfa, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0x91, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x49, 0xff, 0x25, 0xff, 0x25, 0xff, 0x25, 0xff, 0x92, 0xff, 0xff, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xad, 0xff, 0x00, 0xff, 0xb7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xff, 0xda, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xff, 0x88, 0xff, 0x68, 0xff, 0x49, 0xff, 0x29, 0xff, 0xad, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xfe, 0xd0, 0x9e, + 0xe9, 0xf6, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x68, 0xff, 0x8d, 0xff, 0xdb, 0xff, 0xb2, 0xff, 0x25, 0xff, 0xb7, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x64, 0xff, 0xb6, 0xff, 0xff, 0xff, 0xb7, 0xff, 0x20, 0xff, 0x44, 0xff, 0x68, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb1, 0xff, 0x68, 0xff, 0x49, 0xff, 0x29, 0xff, 0xad, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xfe, 0xd0, 0x9e, + 0xe9, 0xef, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x8d, 0xff, 0xad, 0xff, 0x49, 0xff, 0x29, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x40, 0xff, 0x40, 0xff, 0xb6, 0xff, 0xff, 0xff, 0xff, 0xff, 0x49, 0xff, 0xdb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xce, 0xff, 0xff, 0xff, 0xb7, 0xff, 0x20, 0xff, 0x40, 0xff, 0x64, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb1, 0xff, 0x68, 0xff, 0x49, 0xff, 0x49, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xfd, 0xd0, 0x9e, + 0xe9, 0xe6, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x8d, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xb1, 0xff, 0xb2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xff, 0x49, 0xff, 0xff, 0xff, 0xff, 0xff, 0x92, 0xff, 0x6d, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xb1, 0xff, 0x8d, 0xff, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x48, 0xff, 0x49, 0xff, 0x49, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xfc, 0xd0, 0x9e, + 0xe9, 0xd8, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x44, 0xff, 0xb2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x49, 0xff, 0x72, 0xff, 0xff, 0xff, 0xff, 0xff, 0x24, 0xff, 0x20, 0xff, 0x00, 0xff, 0x65, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xff, 0x68, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xfb, 0xd0, 0x9e, + 0xed, 0xc4, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x68, 0xff, 0xb1, 0xff, 0xd6, 0xff, 0xd6, 0xff, 0xd6, 0xff, 0xd6, 0xff, 0x8d, 0xff, 0x44, 0xff, 0x92, 0xff, 0xbb, 0xff, 0x92, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xb2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd2, 0xff, 0xd6, 0xff, 0xda, 0xff, 0xb2, 0xff, 0x68, 0xff, 0x68, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xf9, 0xd0, 0x9e, + 0xcd, 0xb2, 0xe9, 0xfe, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x25, 0xff, 0x25, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x25, 0xff, 0x45, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa8, 0xff, 0x68, 0xff, 0x68, 0xff, 0x88, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf0, 0xf7, 0xd0, 0x9e, + 0xd0, 0xa3, 0xe9, 0xfc, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x89, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xed, 0xfa, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf7, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x8c, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x69, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0x8c, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8c, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x25, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0x8d, 0xff, 0x45, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x8d, 0xff, 0x05, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0x8d, 0xff, 0x05, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x6d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x6d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0x8d, 0xff, 0x05, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0x8d, 0xff, 0x05, 0xff, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0xad, 0xff, 0x8d, 0xff, 0x05, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0x8d, 0xff, 0x05, 0xff, 0x8d, 0xff, 0xad, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x49, 0xff, 0xad, 0xff, 0x8d, 0xff, 0x05, 0xff, 0x8d, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xd0, 0x9e, 0xf0, 0xf6, 0x69, 0xff, 0x05, 0xff, 0x69, 0xff, 0xad, 0xff, 0x29, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x49, 0xff, 0x29, 0xff, 0xad, 0xff, 0x69, 0xff, 0x05, 0xff, 0x69, 0xff, 0xf0, 0xf6, 0xd0, 0x9e, + 0xcc, 0x9e, 0xd0, 0xf6, 0xad, 0xff, 0x6d, 0xff, 0xad, 0xff, 0xd1, 0xff, 0x29, 0xff, 0x29, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x89, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x29, 0xff, 0x29, 0xff, 0xd1, 0xff, 0xad, 0xff, 0x6d, 0xff, 0xad, 0xff, 0xd0, 0xf6, 0xcc, 0x9e, + 0xcc, 0x9e, 0xac, 0xf6, 0xf0, 0xff, 0xf4, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0xad, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf4, 0xff, 0xf0, 0xff, 0xac, 0xf6, 0xcc, 0x9e, + 0xd0, 0x9f, 0xd0, 0xf6, 0x8d, 0xff, 0x49, 0xff, 0x49, 0xff, 0xad, 0xff, 0xf0, 0xff, 0xd1, 0xff, 0xcd, 0xff, 0xd1, 0xff, 0xcd, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xcd, 0xff, 0xd1, 0xff, 0xf0, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xd0, 0xf6, 0xd0, 0x9f, + 0xcc, 0xb1, 0xf0, 0xff, 0x69, 0xf8, 0x05, 0xf9, 0x05, 0xff, 0x69, 0xff, 0xf4, 0xff, 0x8d, 0xff, 0x49, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xf4, 0xff, 0x69, 0xff, 0x05, 0xff, 0x05, 0xf8, 0x69, 0xf8, 0xf0, 0xff, 0xcc, 0xb1, + 0xcc, 0x85, 0xd0, 0xfb, 0xd0, 0xfb, 0x49, 0xf0, 0x05, 0xf9, 0x6d, 0xff, 0xf4, 0xff, 0x49, 0xff, 0x05, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x49, 0xff, 0x69, 0xff, 0x89, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xa9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x49, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x05, 0xff, 0x49, 0xff, 0xf4, 0xff, 0x6d, 0xff, 0x05, 0xf9, 0x49, 0xef, 0xd0, 0xfb, 0xd0, 0xfb, 0xcc, 0x85, + 0xd0, 0x0d, 0xcc, 0x9e, 0xd0, 0xff, 0xd0, 0xff, 0x8d, 0xff, 0xad, 0xff, 0xf0, 0xff, 0xad, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xad, 0xff, 0xf0, 0xff, 0xad, 0xff, 0x8d, 0xff, 0xd0, 0xff, 0xd0, 0xff, 0xcc, 0x9e, 0xd0, 0x0d, + 0x00, 0x00, 0xcc, 0x0a, 0xcc, 0x91, 0xd0, 0xe5, 0xf0, 0xe3, 0xd0, 0xd9, 0xac, 0xda, 0xd0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xf0, 0xda, 0xd0, 0xda, 0xac, 0xda, 0xd0, 0xd9, 0xf0, 0xe3, 0xd0, 0xe5, 0xcc, 0x91, 0xcc, 0x0a, 0x00, 0x00, +#endif +#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP == 0 + /*Pixel format: Alpha 8 bit, Red: 5 bit, Green: 6 bit, Blue: 5 bit*/ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0xec, 0x5e, 0x64, 0xec, 0xd7, 0x64, 0xec, 0xff, 0x64, 0xec, 0xff, 0x64, 0xec, 0xfd, 0x64, 0xec, 0xfe, 0x64, 0xec, 0xfe, 0x64, 0xec, 0xfe, 0x64, 0xec, 0xfe, 0x64, 0xec, 0xfe, 0x64, 0xec, 0xfe, 0x64, 0xec, 0xfe, 0x64, 0xec, 0xfe, 0x64, 0xec, 0xfe, 0x64, 0xec, 0xfe, 0x64, 0xec, 0xfe, 0x64, 0xec, 0xfe, 0x64, 0xec, 0xfe, 0x64, 0xec, 0xfd, 0x64, 0xec, 0xff, 0x64, 0xec, 0xff, 0x64, 0xec, 0xd7, 0x64, 0xe4, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0xec, 0x6e, 0x64, 0xec, 0xff, 0x64, 0xec, 0xe4, 0x64, 0xec, 0xa0, 0x64, 0xec, 0xa6, 0x84, 0xec, 0xab, 0x64, 0xec, 0xaa, 0x64, 0xec, 0xaa, 0x64, 0xec, 0xaa, 0x64, 0xec, 0xaa, 0x64, 0xec, 0xaa, 0x64, 0xec, 0xaa, 0x64, 0xec, 0xaa, 0x64, 0xec, 0xaa, 0x64, 0xec, 0xaa, 0x64, 0xec, 0xaa, 0x64, 0xec, 0xaa, 0x64, 0xec, 0xaa, 0x64, 0xec, 0xaa, 0x84, 0xec, 0xab, 0x64, 0xec, 0xa5, 0x64, 0xec, 0xa0, 0x64, 0xec, 0xe4, 0x64, 0xec, 0xff, 0x64, 0xec, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0xf4, 0x26, 0x64, 0xe4, 0xff, 0x84, 0xec, 0xc5, 0x64, 0xec, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0xec, 0x16, 0x84, 0xec, 0xc5, 0x64, 0xec, 0xff, 0x65, 0xec, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0xec, 0x5a, 0x84, 0xf4, 0xff, 0x85, 0xf4, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0xfc, 0x43, 0x85, 0xf4, 0xff, 0x64, 0xec, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x04, 0xa4, 0xc3, 0x3d, 0xc4, 0xc3, 0x43, 0xc4, 0xc3, 0x3b, 0xc4, 0xcb, 0x3c, 0xc4, 0xc3, 0x3b, 0xa3, 0xc3, 0x32, 0x04, 0xd4, 0x8f, 0x84, 0xf4, 0xff, 0x04, 0xd4, 0x65, 0xa3, 0xbb, 0x31, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xc4, 0xc3, 0x3c, 0xa3, 0xbb, 0x31, 0x04, 0xd4, 0x65, 0x84, 0xf4, 0xff, 0x04, 0xd4, 0x8f, 0xa3, 0xc3, 0x32, 0xc4, 0xc3, 0x3b, 0xc4, 0xcb, 0x3c, 0xc4, 0xc3, 0x3c, 0xc3, 0xc3, 0x42, 0xa4, 0xc3, 0x3d, 0x00, 0xc4, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc4, 0xc3, 0x1e, 0xa4, 0xc3, 0xc0, 0x23, 0xe4, 0xf7, 0x83, 0xfc, 0xfa, 0x23, 0xe4, 0xf6, 0xc4, 0xc3, 0xf7, 0x43, 0xec, 0xf7, 0x63, 0xf4, 0xf0, 0x43, 0xec, 0xf9, 0x43, 0xec, 0xff, 0x43, 0xec, 0xf6, 0x43, 0xec, 0xef, 0x63, 0xf4, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xec, 0xf7, 0x63, 0xf4, 0xf7, 0x43, 0xec, 0xef, 0x43, 0xec, 0xf6, 0x43, 0xec, 0xff, 0x43, 0xec, 0xf9, 0x63, 0xf4, 0xf0, 0x43, 0xec, 0xf7, 0xc4, 0xc3, 0xf7, 0x23, 0xe4, 0xf7, 0x83, 0xf4, 0xfa, 0x23, 0xe4, 0xf7, 0xa4, 0xc3, 0xc0, 0xc4, 0xc3, 0x1e, 0x00, 0x00, 0x00, + 0xc5, 0xc3, 0x15, 0xc4, 0xc3, 0xb6, 0x43, 0xec, 0xff, 0x04, 0xd4, 0xff, 0x87, 0x72, 0xff, 0x25, 0x9b, 0xff, 0x43, 0xec, 0xff, 0x05, 0x93, 0xff, 0xa7, 0x72, 0xff, 0xe6, 0x82, 0xff, 0xc6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xc6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xa7, 0x72, 0xff, 0x05, 0x93, 0xff, 0x43, 0xec, 0xff, 0x25, 0x9b, 0xff, 0x87, 0x72, 0xff, 0x04, 0xd4, 0xff, 0x43, 0xec, 0xff, 0xc4, 0xc3, 0xb6, 0x03, 0xc4, 0x14, + 0xa4, 0xc3, 0x95, 0x23, 0xe4, 0xfc, 0xe4, 0xcb, 0xfb, 0xc8, 0x29, 0xf1, 0xca, 0x00, 0xfb, 0x87, 0x6a, 0xff, 0xa2, 0xfc, 0xff, 0xe8, 0x39, 0xff, 0xeb, 0x00, 0xff, 0x69, 0x11, 0xff, 0x69, 0x11, 0xff, 0x69, 0x11, 0xff, 0x69, 0x11, 0xff, 0x6a, 0x11, 0xff, 0x69, 0x21, 0xff, 0x89, 0x41, 0xff, 0x89, 0x61, 0xff, 0xa8, 0x89, 0xff, 0xc8, 0xa9, 0xff, 0xc8, 0xc1, 0xff, 0xc8, 0xd1, 0xff, 0xc7, 0xd9, 0xff, 0xc7, 0xd9, 0xff, 0xc8, 0xd1, 0xff, 0xc8, 0xc1, 0xff, 0xc8, 0xa9, 0xff, 0xa8, 0x89, 0xff, 0x89, 0x61, 0xff, 0x89, 0x39, 0xff, 0x69, 0x19, 0xff, 0x6a, 0x11, 0xff, 0x69, 0x11, 0xff, 0x69, 0x11, 0xff, 0x69, 0x11, 0xff, 0x69, 0x11, 0xff, 0x69, 0x11, 0xff, 0xeb, 0x00, 0xff, 0xe8, 0x39, 0xff, 0xa2, 0xfc, 0xff, 0x87, 0x6a, 0xff, 0xca, 0x00, 0xfb, 0xc8, 0x31, 0xf2, 0xe4, 0xcb, 0xfc, 0x43, 0xe4, 0xfd, 0xc4, 0xc3, 0x94, + 0xe4, 0xcb, 0xaa, 0x83, 0xfc, 0xfc, 0x87, 0x62, 0xf9, 0xea, 0x00, 0xfb, 0x49, 0x09, 0xff, 0xa7, 0x72, 0xff, 0x82, 0xfc, 0xff, 0x06, 0x93, 0xff, 0x67, 0x5a, 0xff, 0xa7, 0x72, 0xff, 0xa6, 0x72, 0xff, 0xa6, 0x72, 0xff, 0x87, 0x82, 0xff, 0x67, 0xa2, 0xff, 0x27, 0xc2, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x27, 0xba, 0xff, 0x67, 0x9a, 0xff, 0xa7, 0x7a, 0xff, 0xa6, 0x72, 0xff, 0xa6, 0x72, 0xff, 0xa6, 0x72, 0xff, 0xa7, 0x72, 0xff, 0x47, 0x5a, 0xff, 0x06, 0x93, 0xff, 0x82, 0xfc, 0xff, 0xa7, 0x72, 0xff, 0x49, 0x09, 0xff, 0xea, 0x00, 0xfc, 0x87, 0x62, 0xfa, 0x83, 0xfc, 0xfc, 0xe4, 0xcb, 0xaa, + 0xe4, 0xcb, 0x9e, 0x23, 0xe4, 0xf6, 0x25, 0x9b, 0xff, 0xa6, 0x72, 0xff, 0xa7, 0x72, 0xff, 0xa4, 0xbb, 0xff, 0x62, 0xfc, 0xff, 0x25, 0x9b, 0xff, 0x25, 0x93, 0xff, 0x45, 0xa3, 0xff, 0x25, 0xa3, 0xff, 0xa6, 0xc2, 0xff, 0x27, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xd2, 0xff, 0xa6, 0xba, 0xff, 0x25, 0xa3, 0xff, 0x45, 0x9b, 0xff, 0x45, 0xa3, 0xff, 0x25, 0x93, 0xff, 0x25, 0x9b, 0xff, 0x82, 0xfc, 0xff, 0xa4, 0xbb, 0xff, 0xa7, 0x6a, 0xff, 0xa6, 0x72, 0xff, 0x25, 0x9b, 0xff, 0x23, 0xe4, 0xf6, 0xe4, 0xcb, 0x9e, + 0xc4, 0xcb, 0x9e, 0xc4, 0xc3, 0xf6, 0x43, 0xec, 0xff, 0xa2, 0xfc, 0xff, 0x82, 0xfc, 0xff, 0x63, 0xec, 0xff, 0xe6, 0x82, 0xff, 0x89, 0x21, 0xff, 0xe9, 0x39, 0xff, 0xe8, 0x69, 0xff, 0xe8, 0xb9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xe8, 0xc1, 0xff, 0xe8, 0xb9, 0xff, 0xe8, 0xb1, 0xff, 0xe8, 0xb1, 0xff, 0xe8, 0xb9, 0xff, 0xe7, 0xc1, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xb1, 0xff, 0xe8, 0x61, 0xff, 0xe9, 0x39, 0xff, 0xe9, 0x39, 0xff, 0x89, 0x21, 0xff, 0xe6, 0x82, 0xff, 0x63, 0xf4, 0xff, 0x82, 0xfc, 0xff, 0xa2, 0xfc, 0xff, 0x43, 0xec, 0xff, 0xc4, 0xc3, 0xf6, 0xc4, 0xcb, 0x9e, + 0xe4, 0xcb, 0x9e, 0x43, 0xe4, 0xf6, 0xe6, 0x82, 0xff, 0xa9, 0x31, 0xff, 0x06, 0x8b, 0xff, 0x65, 0xa3, 0xff, 0x8a, 0x19, 0xff, 0x08, 0x42, 0xff, 0x08, 0x92, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x08, 0xa2, 0xff, 0x08, 0x7a, 0xff, 0x08, 0x62, 0xff, 0x28, 0x52, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x5a, 0xff, 0x08, 0x62, 0xff, 0x08, 0x7a, 0xff, 0x08, 0xa2, 0xff, 0xe7, 0xd1, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x08, 0x8a, 0xff, 0x28, 0x4a, 0xff, 0x08, 0x42, 0xff, 0x8a, 0x19, 0xff, 0x65, 0xa3, 0xff, 0x06, 0x8b, 0xff, 0xa9, 0x31, 0xff, 0xe6, 0x82, 0xff, 0x43, 0xe4, 0xf6, 0xe4, 0xcb, 0x9e, + 0xe3, 0xcb, 0x9e, 0x63, 0xf4, 0xf6, 0x87, 0x62, 0xff, 0xcb, 0x00, 0xff, 0x67, 0x5a, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x39, 0xff, 0x08, 0xaa, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xc1, 0xff, 0x08, 0x82, 0xff, 0x28, 0x5a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x5a, 0xff, 0x08, 0x8a, 0xff, 0xe8, 0xc1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0x9a, 0xff, 0x28, 0x4a, 0xff, 0xc9, 0x31, 0xff, 0x45, 0xa3, 0xff, 0x67, 0x5a, 0xff, 0xcb, 0x00, 0xff, 0x87, 0x62, 0xff, 0x63, 0xf4, 0xf6, 0xe4, 0xcb, 0x9e, + 0xe4, 0xcb, 0x9e, 0x43, 0xec, 0xf6, 0xc6, 0x7a, 0xff, 0x6a, 0x11, 0xff, 0xc6, 0x72, 0xff, 0x65, 0xb3, 0xff, 0xe8, 0xa9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x08, 0x8a, 0xff, 0x28, 0x52, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x52, 0xff, 0x08, 0x9a, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xa1, 0xff, 0xe9, 0x39, 0xff, 0x65, 0xab, 0xff, 0xc6, 0x72, 0xff, 0x6a, 0x11, 0xff, 0xc6, 0x7a, 0xff, 0x43, 0xec, 0xf6, 0xe3, 0xcb, 0x9e, + 0xe3, 0xcb, 0x9e, 0x43, 0xec, 0xf6, 0xa6, 0x7a, 0xff, 0x4a, 0x09, 0xff, 0xa7, 0x7a, 0xff, 0x66, 0xd2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xc9, 0xff, 0x28, 0x62, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x09, 0x42, 0xff, 0x09, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x48, 0x52, 0xff, 0x67, 0x5a, 0xff, 0x67, 0x62, 0xff, 0x67, 0x62, 0xff, 0x67, 0x62, 0xff, 0x67, 0x5a, 0xff, 0x48, 0x52, 0xff, 0x29, 0x42, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x6a, 0xff, 0xe8, 0xc1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0x91, 0xff, 0x65, 0xab, 0xff, 0xc7, 0x72, 0xff, 0x4a, 0x09, 0xff, 0xa6, 0x7a, 0xff, 0x43, 0xec, 0xf6, 0xe3, 0xcb, 0x9e, + 0xe3, 0xcb, 0x9e, 0x43, 0xec, 0xf6, 0xa6, 0x7a, 0xff, 0x4a, 0x09, 0xff, 0x47, 0xaa, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x28, 0x7a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x3a, 0xff, 0x48, 0x52, 0xff, 0x86, 0x6a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xc4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xc4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0x86, 0x6a, 0xff, 0x48, 0x52, 0xff, 0x29, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x5a, 0xff, 0xe8, 0xb1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc6, 0xc2, 0xff, 0xc7, 0x72, 0xff, 0x4a, 0x09, 0xff, 0xa6, 0x7a, 0xff, 0x43, 0xec, 0xf6, 0xe3, 0xcb, 0x9e, + 0xe3, 0xcb, 0x9e, 0x43, 0xec, 0xf6, 0xc6, 0x7a, 0xff, 0x89, 0x49, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0x82, 0xff, 0x2a, 0x3a, 0xff, 0x29, 0x4a, 0xff, 0x86, 0x6a, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0x86, 0x6a, 0xff, 0x29, 0x4a, 0xff, 0x2a, 0x3a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x52, 0xff, 0xe8, 0xb1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x87, 0x8a, 0xff, 0x4a, 0x09, 0xff, 0xc6, 0x7a, 0xff, 0x43, 0xec, 0xf6, 0xe3, 0xcb, 0x9e, + 0xc3, 0xcb, 0x9e, 0x43, 0xec, 0xf6, 0xa6, 0x82, 0xff, 0xc8, 0xc1, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xc1, 0xff, 0xe8, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x27, 0x92, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0x67, 0x5a, 0xff, 0x2a, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x5a, 0xff, 0xe8, 0xc1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xca, 0xff, 0x4a, 0x11, 0xff, 0xc6, 0x7a, 0xff, 0x43, 0xec, 0xf6, 0xc3, 0xcb, 0x9e, + 0xc3, 0xcb, 0x9e, 0x43, 0xe4, 0xf6, 0x47, 0xaa, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xd1, 0xff, 0x08, 0x62, 0xff, 0x28, 0x62, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x46, 0xa2, 0xff, 0x85, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0x85, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0x67, 0x62, 0xff, 0x0a, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x6a, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x89, 0x61, 0xff, 0xc6, 0x7a, 0xff, 0x43, 0xec, 0xf6, 0xc3, 0xcb, 0x9e, + 0xc3, 0xcb, 0x9e, 0xe3, 0xe3, 0xf7, 0x07, 0xd2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0x81, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x6a, 0xff, 0xe8, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x46, 0xa2, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xc4, 0x8a, 0xff, 0x67, 0x62, 0xff, 0x0a, 0x3a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x08, 0x9a, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xb1, 0xff, 0xa6, 0x7a, 0xff, 0x23, 0xe4, 0xf6, 0xc3, 0xcb, 0x9e, + 0xc3, 0xcb, 0x9e, 0x25, 0xe3, 0xfa, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xda, 0xff, 0xe9, 0x39, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x0a, 0x3a, 0xff, 0x48, 0x72, 0xff, 0x07, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x46, 0xa2, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x82, 0xff, 0xa6, 0x7a, 0xff, 0xa6, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xc5, 0x7a, 0xff, 0xc4, 0x8a, 0xff, 0x48, 0x52, 0xff, 0x0a, 0x3a, 0xff, 0x28, 0x4a, 0xff, 0x08, 0x52, 0xff, 0xe8, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x67, 0x9a, 0xff, 0x23, 0xe4, 0xf6, 0xc3, 0xcb, 0x9e, + 0xa4, 0xcb, 0xa3, 0x86, 0xe2, 0xfc, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe6, 0xc2, 0xff, 0xe9, 0x31, 0xff, 0x28, 0x42, 0xff, 0x29, 0x42, 0xff, 0x4a, 0x42, 0xff, 0x84, 0x7a, 0xff, 0x03, 0x8a, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x65, 0xaa, 0xff, 0xa5, 0x7a, 0xff, 0x88, 0x62, 0xff, 0xe7, 0x41, 0xff, 0x86, 0x29, 0xff, 0x87, 0x29, 0xff, 0xe8, 0x39, 0xff, 0x69, 0x52, 0xff, 0x67, 0x5a, 0xff, 0xa5, 0x7a, 0xff, 0x63, 0x7a, 0xff, 0x02, 0x6a, 0xff, 0x03, 0x6a, 0xff, 0x23, 0x6a, 0xff, 0x02, 0x6a, 0xff, 0x03, 0x6a, 0xff, 0x84, 0x7a, 0xff, 0xc5, 0x82, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0xe8, 0x89, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xba, 0xff, 0x23, 0xe4, 0xf6, 0xc3, 0xcb, 0x9e, + 0x45, 0xd3, 0xb3, 0x07, 0xe2, 0xfe, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xd2, 0xff, 0x65, 0xb3, 0xff, 0xe9, 0x31, 0xff, 0x29, 0x42, 0xff, 0x4a, 0x42, 0xff, 0x05, 0x52, 0xff, 0x80, 0x61, 0xff, 0xe2, 0x61, 0xff, 0x24, 0x8a, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x29, 0x82, 0xff, 0x0a, 0x3a, 0xff, 0x66, 0x29, 0xff, 0xa7, 0x31, 0xff, 0xa7, 0x31, 0xff, 0x66, 0x29, 0xff, 0x2a, 0x42, 0xff, 0x2a, 0x42, 0xff, 0x29, 0x42, 0xff, 0x05, 0x5a, 0xff, 0x23, 0x72, 0xff, 0x22, 0x6a, 0xff, 0x02, 0x6a, 0xff, 0x23, 0x6a, 0xff, 0xe2, 0x69, 0xff, 0x60, 0x51, 0xff, 0x42, 0x7a, 0xff, 0xa8, 0x62, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0xe9, 0x49, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xda, 0xff, 0xe4, 0xe3, 0xf7, 0xc3, 0xcb, 0x9e, + 0xc6, 0xda, 0xc6, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0x47, 0xb2, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x31, 0xff, 0x29, 0x42, 0xff, 0xc7, 0x39, 0xff, 0xe2, 0x61, 0xff, 0x52, 0xc5, 0xff, 0xfa, 0xe6, 0xff, 0x3b, 0xef, 0xff, 0xf7, 0xed, 0xff, 0x8a, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x86, 0x71, 0xff, 0x34, 0xad, 0xff, 0x1c, 0xe7, 0xff, 0xfc, 0xe6, 0xff, 0x72, 0x94, 0xff, 0x45, 0x29, 0xff, 0x28, 0x4a, 0xff, 0x87, 0x31, 0xff, 0x31, 0x84, 0xff, 0x1a, 0xef, 0xff, 0xfa, 0xe6, 0xff, 0x1b, 0xef, 0xff, 0x3c, 0xef, 0xff, 0xfa, 0xee, 0xff, 0x73, 0xc5, 0xff, 0xe2, 0x69, 0xff, 0x03, 0x6a, 0xff, 0x49, 0x4a, 0xff, 0x29, 0x42, 0xff, 0xe9, 0x39, 0xff, 0x66, 0xd2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x64, 0xe3, 0xf9, 0xc3, 0xcb, 0x9e, + 0x66, 0xda, 0xd8, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0x87, 0x9a, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x39, 0xff, 0x09, 0x3a, 0xff, 0xa4, 0x49, 0xff, 0x93, 0xc5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbb, 0xfe, 0xff, 0xcb, 0xea, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x76, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5d, 0xef, 0xff, 0xc7, 0x39, 0xff, 0xa6, 0x39, 0xff, 0x86, 0x39, 0xff, 0x75, 0xad, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xcd, 0xff, 0xe1, 0x69, 0xff, 0x06, 0x52, 0xff, 0x29, 0x42, 0xff, 0xe9, 0x39, 0xff, 0xe6, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe5, 0xe2, 0xfb, 0xc3, 0xcb, 0x9e, + 0x47, 0xe2, 0xe7, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xd1, 0xff, 0x87, 0x8a, 0xff, 0x65, 0xab, 0xff, 0x09, 0x3a, 0xff, 0xa7, 0x31, 0xff, 0xa8, 0x6a, 0xff, 0x9d, 0xff, 0xff, 0xff, 0xff, 0xff, 0x53, 0xbd, 0xff, 0x66, 0x72, 0xff, 0xa7, 0x7a, 0xff, 0x58, 0xd6, 0xff, 0xbb, 0xfe, 0xff, 0x8a, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0xe2, 0xff, 0x55, 0xed, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x63, 0xff, 0x24, 0x21, 0xff, 0xa7, 0x39, 0xff, 0x14, 0xa5, 0xff, 0xff, 0xff, 0xff, 0x58, 0xd6, 0xff, 0x45, 0x72, 0xff, 0x04, 0x6a, 0xff, 0xb0, 0xac, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xe5, 0x82, 0xff, 0xc3, 0x51, 0xff, 0x29, 0x42, 0xff, 0xe9, 0x31, 0xff, 0x05, 0xbb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x86, 0xe2, 0xfc, 0xc3, 0xcb, 0x9e, + 0x07, 0xe2, 0xf0, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xb9, 0xff, 0xa7, 0x7a, 0xff, 0x65, 0xab, 0xff, 0x0a, 0x32, 0xff, 0xa7, 0x31, 0xff, 0x08, 0x7b, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0x08, 0x83, 0xff, 0xc0, 0x48, 0xff, 0xe0, 0x48, 0xff, 0x8f, 0xac, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xe5, 0xff, 0xc7, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0xe2, 0xff, 0x10, 0xc4, 0xff, 0xff, 0xff, 0xff, 0x92, 0x94, 0xff, 0xe3, 0x20, 0xff, 0x86, 0x31, 0xff, 0x14, 0xa5, 0xff, 0xff, 0xff, 0xff, 0x55, 0xad, 0xff, 0x20, 0x28, 0xff, 0x00, 0x38, 0xff, 0x45, 0x6a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x27, 0x8b, 0xff, 0xc2, 0x59, 0xff, 0x29, 0x42, 0xff, 0xe9, 0x31, 0xff, 0x45, 0xb3, 0xff, 0x07, 0xd2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x46, 0xe2, 0xfd, 0xc3, 0xc3, 0x9e, + 0xe7, 0xe1, 0xf7, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xa8, 0xa9, 0xff, 0xa7, 0x7a, 0xff, 0x65, 0xab, 0xff, 0xea, 0x31, 0xff, 0xa7, 0x39, 0xff, 0x07, 0x83, 0xff, 0x9d, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8a, 0x93, 0xff, 0xc0, 0x61, 0xff, 0xa4, 0x7a, 0xff, 0xe8, 0x72, 0xff, 0xf0, 0x7b, 0xff, 0x4d, 0x6b, 0xff, 0x86, 0x59, 0xff, 0xc7, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xd9, 0xff, 0xb6, 0xf5, 0xff, 0x59, 0xce, 0xff, 0x04, 0x21, 0xff, 0x25, 0x29, 0xff, 0x34, 0xa5, 0xff, 0xff, 0xff, 0xff, 0x7a, 0xce, 0xff, 0x4b, 0x7b, 0xff, 0x49, 0x8b, 0xff, 0x53, 0xbd, 0xff, 0xff, 0xff, 0xff, 0x99, 0xde, 0xff, 0x63, 0x7a, 0xff, 0x23, 0x6a, 0xff, 0x29, 0x42, 0xff, 0xe9, 0x31, 0xff, 0x45, 0xb3, 0xff, 0x07, 0xca, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xfe, 0xc3, 0xc3, 0x9e, + 0xe7, 0xe1, 0xfb, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0xc8, 0x99, 0xff, 0xa7, 0x7a, 0xff, 0x65, 0xab, 0xff, 0xea, 0x31, 0xff, 0xa7, 0x39, 0xff, 0x07, 0x83, 0xff, 0x9d, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8a, 0x93, 0xff, 0xa0, 0x61, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x52, 0xff, 0xe5, 0x18, 0xff, 0x86, 0x31, 0xff, 0x86, 0x31, 0xff, 0x6a, 0x72, 0xff, 0xaa, 0xea, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x28, 0xe2, 0xff, 0x75, 0xf5, 0xff, 0xc7, 0x39, 0xff, 0xc3, 0x18, 0xff, 0x34, 0xad, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x28, 0x83, 0xff, 0x60, 0x59, 0xff, 0xc6, 0x7a, 0xff, 0x29, 0x42, 0xff, 0xe9, 0x31, 0xff, 0x65, 0xb3, 0xff, 0x27, 0xc2, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xfe, 0xc3, 0xc3, 0x9e, + 0xe7, 0xe1, 0xfa, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0xc8, 0x99, 0xff, 0xa7, 0x7a, 0xff, 0x65, 0xab, 0xff, 0xea, 0x31, 0xff, 0xa7, 0x39, 0xff, 0x07, 0x83, 0xff, 0x9d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaa, 0x93, 0xff, 0xa0, 0x61, 0xff, 0x06, 0x8b, 0xff, 0xe5, 0x51, 0xff, 0x05, 0x19, 0xff, 0x66, 0x31, 0xff, 0x65, 0x31, 0xff, 0x31, 0x8c, 0xff, 0xdb, 0xfe, 0xff, 0x8a, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0xe2, 0xff, 0xab, 0x9a, 0xff, 0x41, 0x08, 0xff, 0x14, 0xa5, 0xff, 0xff, 0xff, 0xff, 0x3d, 0xe7, 0xff, 0xb5, 0xbd, 0xff, 0x93, 0xcd, 0xff, 0xb9, 0xe6, 0xff, 0xff, 0xff, 0xff, 0x37, 0xd6, 0xff, 0x63, 0x7a, 0xff, 0x23, 0x6a, 0xff, 0x29, 0x42, 0xff, 0xe9, 0x31, 0xff, 0x65, 0xb3, 0xff, 0x27, 0xc2, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xfe, 0xc3, 0xc3, 0x9e, + 0x07, 0xe2, 0xf6, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xa9, 0xff, 0xa7, 0x7a, 0xff, 0x65, 0xab, 0xff, 0xea, 0x31, 0xff, 0xa7, 0x31, 0xff, 0x08, 0x83, 0xff, 0x9d, 0xff, 0xff, 0xff, 0xff, 0xff, 0x49, 0x8b, 0xff, 0xa1, 0x61, 0xff, 0x22, 0x6a, 0xff, 0x6a, 0x8b, 0xff, 0x19, 0xc6, 0xff, 0x92, 0x94, 0xff, 0x04, 0x21, 0xff, 0x14, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xe5, 0xff, 0x49, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xe1, 0xff, 0xe3, 0x60, 0xff, 0xf3, 0xa4, 0xff, 0xff, 0xff, 0xff, 0x57, 0xa5, 0xff, 0x60, 0x20, 0xff, 0x80, 0x48, 0xff, 0xe4, 0x61, 0xff, 0x9d, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xca, 0x9b, 0xff, 0xc1, 0x61, 0xff, 0x29, 0x42, 0xff, 0xe9, 0x31, 0xff, 0x45, 0xb3, 0xff, 0x07, 0xca, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xfe, 0xa3, 0xc3, 0x9e, + 0x07, 0xe2, 0xef, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xb9, 0xff, 0xa7, 0x82, 0xff, 0x65, 0xab, 0xff, 0x0a, 0x32, 0xff, 0xa7, 0x31, 0xff, 0x08, 0x7b, 0xff, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x09, 0x83, 0xff, 0x40, 0x38, 0xff, 0x40, 0x38, 0xff, 0xd1, 0xb4, 0xff, 0xff, 0xff, 0xff, 0x1c, 0xe7, 0xff, 0xa6, 0x31, 0xff, 0xf8, 0xc5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xba, 0xfe, 0xff, 0xcb, 0xea, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xd9, 0xff, 0x8e, 0xb3, 0xff, 0xff, 0xff, 0xff, 0x56, 0xad, 0xff, 0x20, 0x30, 0xff, 0x40, 0x40, 0xff, 0x41, 0x51, 0xff, 0x7d, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xeb, 0x9b, 0xff, 0xc2, 0x59, 0xff, 0x29, 0x42, 0xff, 0xe9, 0x31, 0xff, 0x45, 0xb3, 0xff, 0x07, 0xd2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x46, 0xe2, 0xfd, 0xa3, 0xc3, 0x9e, + 0x27, 0xe2, 0xe6, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xd9, 0xff, 0x87, 0x8a, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x39, 0xff, 0xc8, 0x31, 0xff, 0x67, 0x62, 0xff, 0x3b, 0xf7, 0xff, 0xff, 0xff, 0xff, 0x78, 0xde, 0xff, 0xec, 0x9b, 0xff, 0x4e, 0xa4, 0xff, 0x1b, 0xef, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xbd, 0xff, 0x08, 0x42, 0xff, 0xbe, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xcf, 0x7b, 0xff, 0x8a, 0x52, 0xff, 0x6a, 0x72, 0xff, 0x29, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0xe2, 0xff, 0xb6, 0xf5, 0xff, 0xda, 0xe6, 0xff, 0xac, 0x93, 0xff, 0x8a, 0x8b, 0xff, 0x52, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x27, 0x8b, 0xff, 0xa3, 0x51, 0xff, 0x29, 0x42, 0xff, 0xe9, 0x31, 0xff, 0x05, 0xbb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x86, 0xe2, 0xfc, 0xa3, 0xc3, 0x9e, + 0x66, 0xda, 0xd8, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x67, 0x9a, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x39, 0xff, 0x09, 0x42, 0xff, 0x64, 0x41, 0xff, 0x4d, 0xac, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0x29, 0x4a, 0xff, 0x8f, 0x73, 0xff, 0xff, 0xff, 0xff, 0x5d, 0xef, 0xff, 0xa2, 0x10, 0xff, 0x82, 0x10, 0xff, 0x62, 0x10, 0xff, 0x66, 0x51, 0xff, 0xaa, 0xea, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x29, 0xe2, 0xff, 0xb6, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x93, 0xc5, 0xff, 0xc1, 0x69, 0xff, 0x07, 0x4a, 0xff, 0x29, 0x42, 0xff, 0xe9, 0x39, 0xff, 0xe6, 0xc2, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0xe5, 0xe2, 0xfb, 0xa3, 0xc3, 0x9e, + 0xc6, 0xd2, 0xc4, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xb2, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x31, 0xff, 0x29, 0x42, 0xff, 0xe8, 0x41, 0xff, 0xa2, 0x59, 0xff, 0x0b, 0xa4, 0xff, 0x73, 0xbd, 0xff, 0x73, 0xc5, 0xff, 0x73, 0xc5, 0xff, 0x52, 0xbd, 0xff, 0x68, 0x93, 0xff, 0x00, 0x41, 0xff, 0x11, 0x7c, 0xff, 0xb8, 0xad, 0xff, 0xf0, 0x7b, 0xff, 0xa6, 0x39, 0xff, 0x69, 0x52, 0xff, 0x49, 0x4a, 0xff, 0xc7, 0x39, 0xff, 0xae, 0x9b, 0xff, 0x6a, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0xe2, 0xff, 0xee, 0xcb, 0xff, 0x73, 0xc5, 0xff, 0x94, 0xc5, 0xff, 0x4e, 0xa4, 0xff, 0xe1, 0x69, 0xff, 0x24, 0x62, 0xff, 0x4a, 0x4a, 0xff, 0x29, 0x42, 0xff, 0xe9, 0x39, 0xff, 0x87, 0xd2, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x64, 0xe3, 0xf9, 0xa3, 0xc3, 0x9e, + 0x25, 0xcb, 0xb2, 0x07, 0xe2, 0xfe, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x45, 0xb3, 0xff, 0xe9, 0x31, 0xff, 0x29, 0x42, 0xff, 0x4a, 0x42, 0xff, 0x27, 0x52, 0xff, 0xe0, 0x71, 0xff, 0xc1, 0x61, 0xff, 0xc1, 0x61, 0xff, 0xc1, 0x61, 0xff, 0xc1, 0x61, 0xff, 0xe2, 0x61, 0xff, 0xc5, 0x82, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x29, 0xff, 0x67, 0x29, 0xff, 0x4a, 0x42, 0xff, 0x29, 0x42, 0xff, 0x4a, 0x42, 0xff, 0x49, 0x42, 0xff, 0x66, 0x29, 0xff, 0x46, 0x49, 0xff, 0xe7, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc4, 0x99, 0xff, 0xc1, 0x61, 0xff, 0xc1, 0x61, 0xff, 0x63, 0x7a, 0xff, 0x88, 0x5a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0xe9, 0x49, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xc3, 0xdb, 0xf7, 0xa3, 0xc3, 0x9e, + 0x84, 0xc3, 0xa3, 0x86, 0xe2, 0xfc, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc6, 0xc2, 0xff, 0xe9, 0x31, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0xa6, 0x72, 0xff, 0xa4, 0x82, 0xff, 0x85, 0x72, 0xff, 0x85, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa6, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x7a, 0xff, 0x85, 0x7a, 0xff, 0x86, 0x6a, 0xff, 0x48, 0x52, 0xff, 0x48, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x48, 0x4a, 0xff, 0x48, 0x52, 0xff, 0x66, 0x6a, 0xff, 0x85, 0x92, 0xff, 0x07, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x46, 0xa2, 0xff, 0xc4, 0x8a, 0xff, 0xa6, 0x7a, 0xff, 0x09, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0xe8, 0x89, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xba, 0xff, 0xe3, 0xdb, 0xf6, 0xa3, 0xc3, 0x9e, + 0xa3, 0xc3, 0x9e, 0x25, 0xe3, 0xfa, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xda, 0xff, 0xe9, 0x39, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x09, 0x3a, 0xff, 0x49, 0x4a, 0xff, 0xc4, 0x8a, 0xff, 0xc5, 0x82, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xc4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x82, 0xff, 0xc4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0x66, 0x92, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x65, 0xaa, 0xff, 0x29, 0x4a, 0xff, 0x09, 0x3a, 0xff, 0x28, 0x4a, 0xff, 0x08, 0x52, 0xff, 0xe8, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x67, 0x9a, 0xff, 0x03, 0xdc, 0xf6, 0xa3, 0xc3, 0x9e, + 0xa3, 0xc3, 0x9e, 0xc3, 0xdb, 0xf7, 0x07, 0xd2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0x81, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x0a, 0x3a, 0xff, 0x48, 0x52, 0xff, 0xc4, 0x8a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0x66, 0x92, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x09, 0x7a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x08, 0x9a, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xb1, 0xff, 0xa6, 0x7a, 0xff, 0x03, 0xdc, 0xf6, 0xa3, 0xc3, 0x9e, + 0xa3, 0xc3, 0x9e, 0x03, 0xdc, 0xf6, 0x47, 0xaa, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x08, 0x62, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x0a, 0x3a, 0xff, 0x48, 0x52, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0x66, 0x92, 0xff, 0x07, 0xd2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x28, 0x7a, 0xff, 0x28, 0x72, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x89, 0x59, 0xff, 0xa6, 0x72, 0xff, 0x03, 0xdc, 0xf6, 0xa3, 0xc3, 0x9e, + 0xa3, 0xc3, 0x9e, 0xe3, 0xdb, 0xf6, 0xa6, 0x7a, 0xff, 0xc8, 0xb9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xb9, 0xff, 0x28, 0x5a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x0a, 0x3a, 0xff, 0x48, 0x52, 0xff, 0xa5, 0x7a, 0xff, 0xc4, 0x8a, 0xff, 0xa5, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x82, 0xff, 0xc4, 0x8a, 0xff, 0x85, 0x92, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0x27, 0xc2, 0xff, 0x6a, 0x11, 0xff, 0xa6, 0x72, 0xff, 0xe3, 0xdb, 0xf6, 0xa3, 0xc3, 0x9e, + 0xa3, 0xbb, 0x9e, 0xe3, 0xdb, 0xf6, 0xa6, 0x72, 0xff, 0x89, 0x41, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xb1, 0xff, 0x28, 0x52, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x2a, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x67, 0x62, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0x67, 0x62, 0xff, 0x29, 0x42, 0xff, 0x09, 0x62, 0xff, 0xe7, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x87, 0x8a, 0xff, 0x6a, 0x11, 0xff, 0xa6, 0x72, 0xff, 0xe3, 0xdb, 0xf6, 0xa3, 0xbb, 0x9e, + 0xa3, 0xbb, 0x9e, 0xe3, 0xdb, 0xf6, 0xa6, 0x72, 0xff, 0x6a, 0x11, 0xff, 0x47, 0xaa, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xb1, 0xff, 0x29, 0x5a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x0a, 0x3a, 0xff, 0x29, 0x4a, 0xff, 0x67, 0x62, 0xff, 0x85, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0x85, 0x72, 0xff, 0x67, 0x62, 0xff, 0x29, 0x4a, 0xff, 0x0a, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x62, 0xff, 0xe8, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0xc6, 0xc2, 0xff, 0xc7, 0x72, 0xff, 0x6a, 0x11, 0xff, 0xa6, 0x72, 0xff, 0xe3, 0xdb, 0xf6, 0xa3, 0xbb, 0x9e, + 0xa3, 0xbb, 0x9e, 0xe3, 0xdb, 0xf6, 0xa6, 0x72, 0xff, 0x6a, 0x11, 0xff, 0xa7, 0x7a, 0xff, 0x86, 0xca, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xb9, 0xff, 0x28, 0x6a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x2a, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x48, 0x52, 0xff, 0x47, 0x5a, 0xff, 0x67, 0x5a, 0xff, 0x47, 0x5a, 0xff, 0x48, 0x52, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x2a, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x6a, 0xff, 0xe8, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0x91, 0xff, 0x65, 0xab, 0xff, 0xc7, 0x72, 0xff, 0x6a, 0x11, 0xff, 0xa6, 0x72, 0xff, 0xe3, 0xdb, 0xf6, 0xa3, 0xbb, 0x9e, + 0xa3, 0xbb, 0x9e, 0xe3, 0xdb, 0xf6, 0xa6, 0x72, 0xff, 0x6a, 0x11, 0xff, 0xc6, 0x7a, 0xff, 0x65, 0xb3, 0xff, 0xe8, 0xa1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x08, 0x92, 0xff, 0x29, 0x52, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x5a, 0xff, 0x08, 0x9a, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0x99, 0xff, 0xe9, 0x39, 0xff, 0x85, 0xab, 0xff, 0xc6, 0x7a, 0xff, 0x6a, 0x11, 0xff, 0xa6, 0x72, 0xff, 0xe3, 0xdb, 0xf6, 0xa3, 0xbb, 0x9e, + 0xa3, 0xbb, 0x9e, 0x02, 0xdc, 0xf6, 0x67, 0x62, 0xff, 0xcb, 0x00, 0xff, 0x67, 0x5a, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x31, 0xff, 0x08, 0xa2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xc9, 0xff, 0x08, 0x8a, 0xff, 0x28, 0x5a, 0xff, 0x49, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x28, 0x62, 0xff, 0x08, 0x92, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0x9a, 0xff, 0x28, 0x4a, 0xff, 0xc9, 0x29, 0xff, 0x45, 0xa3, 0xff, 0x67, 0x5a, 0xff, 0xcb, 0x00, 0xff, 0x67, 0x62, 0xff, 0x02, 0xdc, 0xf6, 0xa3, 0xbb, 0x9e, + 0x83, 0xbb, 0x9e, 0xa3, 0xcb, 0xf6, 0x25, 0x9b, 0xff, 0xa7, 0x72, 0xff, 0x85, 0xb3, 0xff, 0x84, 0xb3, 0xff, 0xaa, 0x21, 0xff, 0xc9, 0x31, 0xff, 0xe8, 0x89, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0xe8, 0xa1, 0xff, 0xe9, 0x79, 0xff, 0xe9, 0x61, 0xff, 0xe9, 0x51, 0xff, 0x09, 0x42, 0xff, 0x09, 0x42, 0xff, 0x09, 0x42, 0xff, 0x09, 0x42, 0xff, 0xe9, 0x51, 0xff, 0xe9, 0x61, 0xff, 0xe8, 0x79, 0xff, 0xe8, 0xa1, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0xe8, 0x79, 0xff, 0x09, 0x3a, 0xff, 0xc9, 0x31, 0xff, 0xaa, 0x21, 0xff, 0x85, 0xb3, 0xff, 0x85, 0xab, 0xff, 0xa7, 0x72, 0xff, 0x25, 0x9b, 0xff, 0xa3, 0xcb, 0xf6, 0x83, 0xbb, 0x9e, + 0x83, 0xbb, 0x9e, 0x64, 0xb3, 0xf6, 0x23, 0xe4, 0xff, 0xc2, 0xfc, 0xff, 0x63, 0xf4, 0xff, 0x82, 0xfc, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x09, 0x42, 0xff, 0x28, 0x72, 0xff, 0xe8, 0xb9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xc9, 0xff, 0xe8, 0xc1, 0xff, 0xe8, 0xb9, 0xff, 0xe8, 0xb9, 0xff, 0xe8, 0xc1, 0xff, 0xe8, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xb1, 0xff, 0x08, 0x6a, 0xff, 0x28, 0x4a, 0xff, 0x09, 0x42, 0xff, 0xc9, 0x29, 0xff, 0x45, 0xa3, 0xff, 0x82, 0xfc, 0xff, 0x62, 0xf4, 0xff, 0xc2, 0xfc, 0xff, 0x23, 0xe4, 0xff, 0x64, 0xb3, 0xf6, 0x83, 0xbb, 0x9e, + 0x83, 0xc3, 0x9f, 0xc3, 0xd3, 0xf6, 0xa6, 0x7a, 0xff, 0x08, 0x42, 0xff, 0x08, 0x42, 0xff, 0x45, 0xa3, 0xff, 0x82, 0xfc, 0xff, 0xa4, 0xbb, 0xff, 0x84, 0xb3, 0xff, 0xa4, 0xbb, 0xff, 0x85, 0xbb, 0xff, 0xe6, 0xca, 0xff, 0x47, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xda, 0xff, 0xe5, 0xca, 0xff, 0x84, 0xbb, 0xff, 0xa4, 0xbb, 0xff, 0xa4, 0xbb, 0xff, 0x85, 0xb3, 0xff, 0xa4, 0xbb, 0xff, 0x82, 0xfc, 0xff, 0x45, 0xa3, 0xff, 0x08, 0x42, 0xff, 0x08, 0x42, 0xff, 0xa6, 0x72, 0xff, 0xe3, 0xd3, 0xf6, 0x83, 0xbb, 0x9f, + 0x83, 0xbb, 0xb1, 0x02, 0xe4, 0xff, 0x67, 0x62, 0xf8, 0x0a, 0x01, 0xf9, 0x2a, 0x09, 0xff, 0x87, 0x6a, 0xff, 0x82, 0xfc, 0xff, 0xc6, 0x7a, 0xff, 0x09, 0x3a, 0xff, 0x68, 0x5a, 0xff, 0x68, 0x5a, 0xff, 0x68, 0x5a, 0xff, 0x48, 0x62, 0xff, 0x28, 0x8a, 0xff, 0x08, 0xb2, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x08, 0xb2, 0xff, 0x28, 0x8a, 0xff, 0x48, 0x62, 0xff, 0x68, 0x5a, 0xff, 0x68, 0x5a, 0xff, 0x68, 0x5a, 0xff, 0x68, 0x5a, 0xff, 0x09, 0x3a, 0xff, 0xc6, 0x7a, 0xff, 0x82, 0xfc, 0xff, 0x87, 0x6a, 0xff, 0x2a, 0x09, 0xff, 0x0b, 0x01, 0xf8, 0x67, 0x62, 0xf8, 0x02, 0xe4, 0xff, 0x83, 0xbb, 0xb1, + 0x63, 0xb3, 0x85, 0xc3, 0xcb, 0xfb, 0xa3, 0xc3, 0xfb, 0x08, 0x42, 0xf0, 0x0b, 0x01, 0xf9, 0xa7, 0x6a, 0xff, 0xc2, 0xfc, 0xff, 0x09, 0x42, 0xff, 0x0b, 0x01, 0xff, 0x8a, 0x19, 0xff, 0x8a, 0x19, 0xff, 0x8a, 0x19, 0xff, 0x8a, 0x19, 0xff, 0x8a, 0x19, 0xff, 0x8a, 0x21, 0xff, 0xa9, 0x39, 0xff, 0xa9, 0x61, 0xff, 0xc9, 0x89, 0xff, 0xc8, 0xa9, 0xff, 0xc8, 0xb9, 0xff, 0xc8, 0xc9, 0xff, 0xc8, 0xd1, 0xff, 0xc8, 0xd1, 0xff, 0xc8, 0xc9, 0xff, 0xc8, 0xb9, 0xff, 0xc8, 0xa1, 0xff, 0xc9, 0x81, 0xff, 0xa9, 0x59, 0xff, 0xaa, 0x39, 0xff, 0x8a, 0x21, 0xff, 0x8a, 0x19, 0xff, 0x8a, 0x19, 0xff, 0x8a, 0x19, 0xff, 0x8a, 0x19, 0xff, 0x8a, 0x19, 0xff, 0x8a, 0x19, 0xff, 0x0b, 0x01, 0xff, 0x08, 0x42, 0xff, 0xc2, 0xfc, 0xff, 0xa7, 0x6a, 0xff, 0x0b, 0x01, 0xf9, 0x08, 0x42, 0xef, 0xa3, 0xc3, 0xfb, 0xc3, 0xcb, 0xfb, 0x63, 0xb3, 0x85, + 0xc3, 0xb3, 0x0d, 0x83, 0xb3, 0x9e, 0xe3, 0xd3, 0xff, 0xc3, 0xcb, 0xff, 0xa6, 0x7a, 0xff, 0x05, 0x9b, 0xff, 0xe3, 0xd3, 0xff, 0x05, 0x93, 0xff, 0xa6, 0x7a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xe5, 0x8a, 0xff, 0xa6, 0x7a, 0xff, 0x05, 0x93, 0xff, 0xe3, 0xd3, 0xff, 0x05, 0x9b, 0xff, 0xa6, 0x7a, 0xff, 0xc3, 0xcb, 0xff, 0xe3, 0xd3, 0xff, 0x83, 0xb3, 0x9e, 0xc3, 0xb3, 0x0d, + 0x00, 0x00, 0x00, 0x43, 0xb3, 0x0a, 0x84, 0xb3, 0x91, 0xc3, 0xcb, 0xe5, 0x02, 0xe4, 0xe3, 0xa3, 0xcb, 0xd9, 0x44, 0xab, 0xda, 0xc3, 0xcb, 0xda, 0xe2, 0xdb, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xc2, 0xd3, 0xda, 0xe2, 0xdb, 0xda, 0xc3, 0xcb, 0xda, 0x44, 0xab, 0xda, 0xa3, 0xcb, 0xd9, 0x02, 0xe4, 0xe3, 0xc3, 0xcb, 0xe5, 0x84, 0xb3, 0x91, 0x43, 0xb3, 0x0a, 0x00, 0x00, 0x00, +#endif +#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP != 0 + /*Pixel format: Alpha 8 bit, Red: 5 bit, Green: 6 bit, Blue: 5 bit BUT the 2 color bytes are swapped*/ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x64, 0x5e, 0xec, 0x64, 0xd7, 0xec, 0x64, 0xff, 0xec, 0x64, 0xff, 0xec, 0x64, 0xfd, 0xec, 0x64, 0xfe, 0xec, 0x64, 0xfe, 0xec, 0x64, 0xfe, 0xec, 0x64, 0xfe, 0xec, 0x64, 0xfe, 0xec, 0x64, 0xfe, 0xec, 0x64, 0xfe, 0xec, 0x64, 0xfe, 0xec, 0x64, 0xfe, 0xec, 0x64, 0xfe, 0xec, 0x64, 0xfe, 0xec, 0x64, 0xfe, 0xec, 0x64, 0xfe, 0xec, 0x64, 0xfd, 0xec, 0x64, 0xff, 0xec, 0x64, 0xff, 0xec, 0x64, 0xd7, 0xe4, 0x64, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x64, 0x6e, 0xec, 0x64, 0xff, 0xec, 0x64, 0xe4, 0xec, 0x64, 0xa0, 0xec, 0x64, 0xa6, 0xec, 0x84, 0xab, 0xec, 0x64, 0xaa, 0xec, 0x64, 0xaa, 0xec, 0x64, 0xaa, 0xec, 0x64, 0xaa, 0xec, 0x64, 0xaa, 0xec, 0x64, 0xaa, 0xec, 0x64, 0xaa, 0xec, 0x64, 0xaa, 0xec, 0x64, 0xaa, 0xec, 0x64, 0xaa, 0xec, 0x64, 0xaa, 0xec, 0x64, 0xaa, 0xec, 0x64, 0xaa, 0xec, 0x84, 0xab, 0xec, 0x64, 0xa5, 0xec, 0x64, 0xa0, 0xec, 0x64, 0xe4, 0xec, 0x64, 0xff, 0xec, 0x64, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x65, 0x26, 0xe4, 0x64, 0xff, 0xec, 0x84, 0xc5, 0xec, 0x64, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x64, 0x16, 0xec, 0x84, 0xc5, 0xec, 0x64, 0xff, 0xec, 0x65, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x64, 0x5a, 0xf4, 0x84, 0xff, 0xf4, 0x85, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xa5, 0x43, 0xf4, 0x85, 0xff, 0xec, 0x64, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x04, 0xc3, 0xa4, 0x3d, 0xc3, 0xc4, 0x43, 0xc3, 0xc4, 0x3b, 0xcb, 0xc4, 0x3c, 0xc3, 0xc4, 0x3b, 0xc3, 0xa3, 0x32, 0xd4, 0x04, 0x8f, 0xf4, 0x84, 0xff, 0xd4, 0x04, 0x65, 0xbb, 0xa3, 0x31, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xbb, 0xa3, 0x31, 0xd4, 0x04, 0x65, 0xf4, 0x84, 0xff, 0xd4, 0x04, 0x8f, 0xc3, 0xa3, 0x32, 0xc3, 0xc4, 0x3b, 0xcb, 0xc4, 0x3c, 0xc3, 0xc4, 0x3c, 0xc3, 0xc3, 0x42, 0xc3, 0xa4, 0x3d, 0xc4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc3, 0xc4, 0x1e, 0xc3, 0xa4, 0xc0, 0xe4, 0x23, 0xf7, 0xfc, 0x83, 0xfa, 0xe4, 0x23, 0xf6, 0xc3, 0xc4, 0xf7, 0xec, 0x43, 0xf7, 0xf4, 0x63, 0xf0, 0xec, 0x43, 0xf9, 0xec, 0x43, 0xff, 0xec, 0x43, 0xf6, 0xec, 0x43, 0xef, 0xf4, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xec, 0x63, 0xf7, 0xf4, 0x63, 0xf7, 0xec, 0x43, 0xef, 0xec, 0x43, 0xf6, 0xec, 0x43, 0xff, 0xec, 0x43, 0xf9, 0xf4, 0x63, 0xf0, 0xec, 0x43, 0xf7, 0xc3, 0xc4, 0xf7, 0xe4, 0x23, 0xf7, 0xf4, 0x83, 0xfa, 0xe4, 0x23, 0xf7, 0xc3, 0xa4, 0xc0, 0xc3, 0xc4, 0x1e, 0x00, 0x00, 0x00, + 0xc3, 0xc5, 0x15, 0xc3, 0xc4, 0xb6, 0xec, 0x43, 0xff, 0xd4, 0x04, 0xff, 0x72, 0x87, 0xff, 0x9b, 0x25, 0xff, 0xec, 0x43, 0xff, 0x93, 0x05, 0xff, 0x72, 0xa7, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xc6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xc6, 0xff, 0x82, 0xe6, 0xff, 0x72, 0xa7, 0xff, 0x93, 0x05, 0xff, 0xec, 0x43, 0xff, 0x9b, 0x25, 0xff, 0x72, 0x87, 0xff, 0xd4, 0x04, 0xff, 0xec, 0x43, 0xff, 0xc3, 0xc4, 0xb6, 0xc4, 0x03, 0x14, + 0xc3, 0xa4, 0x95, 0xe4, 0x23, 0xfc, 0xcb, 0xe4, 0xfb, 0x29, 0xc8, 0xf1, 0x00, 0xca, 0xfb, 0x6a, 0x87, 0xff, 0xfc, 0xa2, 0xff, 0x39, 0xe8, 0xff, 0x00, 0xeb, 0xff, 0x11, 0x69, 0xff, 0x11, 0x69, 0xff, 0x11, 0x69, 0xff, 0x11, 0x69, 0xff, 0x11, 0x6a, 0xff, 0x21, 0x69, 0xff, 0x41, 0x89, 0xff, 0x61, 0x89, 0xff, 0x89, 0xa8, 0xff, 0xa9, 0xc8, 0xff, 0xc1, 0xc8, 0xff, 0xd1, 0xc8, 0xff, 0xd9, 0xc7, 0xff, 0xd9, 0xc7, 0xff, 0xd1, 0xc8, 0xff, 0xc1, 0xc8, 0xff, 0xa9, 0xc8, 0xff, 0x89, 0xa8, 0xff, 0x61, 0x89, 0xff, 0x39, 0x89, 0xff, 0x19, 0x69, 0xff, 0x11, 0x6a, 0xff, 0x11, 0x69, 0xff, 0x11, 0x69, 0xff, 0x11, 0x69, 0xff, 0x11, 0x69, 0xff, 0x11, 0x69, 0xff, 0x00, 0xeb, 0xff, 0x39, 0xe8, 0xff, 0xfc, 0xa2, 0xff, 0x6a, 0x87, 0xff, 0x00, 0xca, 0xfb, 0x31, 0xc8, 0xf2, 0xcb, 0xe4, 0xfc, 0xe4, 0x43, 0xfd, 0xc3, 0xc4, 0x94, + 0xcb, 0xe4, 0xaa, 0xfc, 0x83, 0xfc, 0x62, 0x87, 0xf9, 0x00, 0xea, 0xfb, 0x09, 0x49, 0xff, 0x72, 0xa7, 0xff, 0xfc, 0x82, 0xff, 0x93, 0x06, 0xff, 0x5a, 0x67, 0xff, 0x72, 0xa7, 0xff, 0x72, 0xa6, 0xff, 0x72, 0xa6, 0xff, 0x82, 0x87, 0xff, 0xa2, 0x67, 0xff, 0xc2, 0x27, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xba, 0x27, 0xff, 0x9a, 0x67, 0xff, 0x7a, 0xa7, 0xff, 0x72, 0xa6, 0xff, 0x72, 0xa6, 0xff, 0x72, 0xa6, 0xff, 0x72, 0xa7, 0xff, 0x5a, 0x47, 0xff, 0x93, 0x06, 0xff, 0xfc, 0x82, 0xff, 0x72, 0xa7, 0xff, 0x09, 0x49, 0xff, 0x00, 0xea, 0xfc, 0x62, 0x87, 0xfa, 0xfc, 0x83, 0xfc, 0xcb, 0xe4, 0xaa, + 0xcb, 0xe4, 0x9e, 0xe4, 0x23, 0xf6, 0x9b, 0x25, 0xff, 0x72, 0xa6, 0xff, 0x72, 0xa7, 0xff, 0xbb, 0xa4, 0xff, 0xfc, 0x62, 0xff, 0x9b, 0x25, 0xff, 0x93, 0x25, 0xff, 0xa3, 0x45, 0xff, 0xa3, 0x25, 0xff, 0xc2, 0xa6, 0xff, 0xda, 0x27, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd2, 0x27, 0xff, 0xba, 0xa6, 0xff, 0xa3, 0x25, 0xff, 0x9b, 0x45, 0xff, 0xa3, 0x45, 0xff, 0x93, 0x25, 0xff, 0x9b, 0x25, 0xff, 0xfc, 0x82, 0xff, 0xbb, 0xa4, 0xff, 0x6a, 0xa7, 0xff, 0x72, 0xa6, 0xff, 0x9b, 0x25, 0xff, 0xe4, 0x23, 0xf6, 0xcb, 0xe4, 0x9e, + 0xcb, 0xc4, 0x9e, 0xc3, 0xc4, 0xf6, 0xec, 0x43, 0xff, 0xfc, 0xa2, 0xff, 0xfc, 0x82, 0xff, 0xec, 0x63, 0xff, 0x82, 0xe6, 0xff, 0x21, 0x89, 0xff, 0x39, 0xe9, 0xff, 0x69, 0xe8, 0xff, 0xb9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xc1, 0xe8, 0xff, 0xb9, 0xe8, 0xff, 0xb1, 0xe8, 0xff, 0xb1, 0xe8, 0xff, 0xb9, 0xe8, 0xff, 0xc1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb1, 0xe8, 0xff, 0x61, 0xe8, 0xff, 0x39, 0xe9, 0xff, 0x39, 0xe9, 0xff, 0x21, 0x89, 0xff, 0x82, 0xe6, 0xff, 0xf4, 0x63, 0xff, 0xfc, 0x82, 0xff, 0xfc, 0xa2, 0xff, 0xec, 0x43, 0xff, 0xc3, 0xc4, 0xf6, 0xcb, 0xc4, 0x9e, + 0xcb, 0xe4, 0x9e, 0xe4, 0x43, 0xf6, 0x82, 0xe6, 0xff, 0x31, 0xa9, 0xff, 0x8b, 0x06, 0xff, 0xa3, 0x65, 0xff, 0x19, 0x8a, 0xff, 0x42, 0x08, 0xff, 0x92, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0xa2, 0x08, 0xff, 0x7a, 0x08, 0xff, 0x62, 0x08, 0xff, 0x52, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x5a, 0x28, 0xff, 0x62, 0x08, 0xff, 0x7a, 0x08, 0xff, 0xa2, 0x08, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x8a, 0x08, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x08, 0xff, 0x19, 0x8a, 0xff, 0xa3, 0x65, 0xff, 0x8b, 0x06, 0xff, 0x31, 0xa9, 0xff, 0x82, 0xe6, 0xff, 0xe4, 0x43, 0xf6, 0xcb, 0xe4, 0x9e, + 0xcb, 0xe3, 0x9e, 0xf4, 0x63, 0xf6, 0x62, 0x87, 0xff, 0x00, 0xcb, 0xff, 0x5a, 0x67, 0xff, 0xa3, 0x45, 0xff, 0x39, 0xc9, 0xff, 0xaa, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc1, 0xe8, 0xff, 0x82, 0x08, 0xff, 0x5a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x5a, 0x28, 0xff, 0x8a, 0x08, 0xff, 0xc1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x9a, 0x08, 0xff, 0x4a, 0x28, 0xff, 0x31, 0xc9, 0xff, 0xa3, 0x45, 0xff, 0x5a, 0x67, 0xff, 0x00, 0xcb, 0xff, 0x62, 0x87, 0xff, 0xf4, 0x63, 0xf6, 0xcb, 0xe4, 0x9e, + 0xcb, 0xe4, 0x9e, 0xec, 0x43, 0xf6, 0x7a, 0xc6, 0xff, 0x11, 0x6a, 0xff, 0x72, 0xc6, 0xff, 0xb3, 0x65, 0xff, 0xa9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x8a, 0x08, 0xff, 0x52, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x52, 0x28, 0xff, 0x9a, 0x08, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xa1, 0xe8, 0xff, 0x39, 0xe9, 0xff, 0xab, 0x65, 0xff, 0x72, 0xc6, 0xff, 0x11, 0x6a, 0xff, 0x7a, 0xc6, 0xff, 0xec, 0x43, 0xf6, 0xcb, 0xe3, 0x9e, + 0xcb, 0xe3, 0x9e, 0xec, 0x43, 0xf6, 0x7a, 0xa6, 0xff, 0x09, 0x4a, 0xff, 0x7a, 0xa7, 0xff, 0xd2, 0x66, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc9, 0xe8, 0xff, 0x62, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x42, 0x29, 0xff, 0x52, 0x48, 0xff, 0x5a, 0x67, 0xff, 0x62, 0x67, 0xff, 0x62, 0x67, 0xff, 0x62, 0x67, 0xff, 0x5a, 0x67, 0xff, 0x52, 0x48, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x09, 0xff, 0x42, 0x09, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x6a, 0x28, 0xff, 0xc1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x91, 0xe8, 0xff, 0xab, 0x65, 0xff, 0x72, 0xc7, 0xff, 0x09, 0x4a, 0xff, 0x7a, 0xa6, 0xff, 0xec, 0x43, 0xf6, 0xcb, 0xe3, 0x9e, + 0xcb, 0xe3, 0x9e, 0xec, 0x43, 0xf6, 0x7a, 0xa6, 0xff, 0x09, 0x4a, 0xff, 0xaa, 0x47, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x7a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x29, 0xff, 0x52, 0x48, 0xff, 0x6a, 0x86, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xc4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xc4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x6a, 0x86, 0xff, 0x52, 0x48, 0xff, 0x3a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x5a, 0x29, 0xff, 0xb1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc2, 0xc6, 0xff, 0x72, 0xc7, 0xff, 0x09, 0x4a, 0xff, 0x7a, 0xa6, 0xff, 0xec, 0x43, 0xf6, 0xcb, 0xe3, 0x9e, + 0xcb, 0xe3, 0x9e, 0xec, 0x43, 0xf6, 0x7a, 0xc6, 0xff, 0x49, 0x89, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x82, 0x08, 0xff, 0x3a, 0x2a, 0xff, 0x4a, 0x29, 0xff, 0x6a, 0x86, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x6a, 0x86, 0xff, 0x4a, 0x29, 0xff, 0x3a, 0x2a, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x52, 0x28, 0xff, 0xb1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0x8a, 0x87, 0xff, 0x09, 0x4a, 0xff, 0x7a, 0xc6, 0xff, 0xec, 0x43, 0xf6, 0xcb, 0xe3, 0x9e, + 0xcb, 0xc3, 0x9e, 0xec, 0x43, 0xf6, 0x82, 0xa6, 0xff, 0xc1, 0xc8, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc1, 0xe8, 0xff, 0xc9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x92, 0x27, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x5a, 0x67, 0xff, 0x3a, 0x2a, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x5a, 0x28, 0xff, 0xc1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xca, 0x07, 0xff, 0x11, 0x4a, 0xff, 0x7a, 0xc6, 0xff, 0xec, 0x43, 0xf6, 0xcb, 0xc3, 0x9e, + 0xcb, 0xc3, 0x9e, 0xe4, 0x43, 0xf6, 0xaa, 0x47, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe8, 0xff, 0x62, 0x08, 0xff, 0x62, 0x28, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xa2, 0x46, 0xff, 0x72, 0x85, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0x85, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x62, 0x67, 0xff, 0x3a, 0x0a, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x6a, 0x28, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x61, 0x89, 0xff, 0x7a, 0xc6, 0xff, 0xec, 0x43, 0xf6, 0xcb, 0xc3, 0x9e, + 0xcb, 0xc3, 0x9e, 0xe3, 0xe3, 0xf7, 0xd2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x81, 0xe8, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x6a, 0x28, 0xff, 0xc9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xa2, 0x46, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x8a, 0xc4, 0xff, 0x62, 0x67, 0xff, 0x3a, 0x0a, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x9a, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb1, 0xc8, 0xff, 0x7a, 0xa6, 0xff, 0xe4, 0x23, 0xf6, 0xcb, 0xc3, 0x9e, + 0xcb, 0xc3, 0x9e, 0xe3, 0x25, 0xfa, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x27, 0xff, 0x39, 0xe9, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x3a, 0x0a, 0xff, 0x72, 0x48, 0xff, 0xda, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xa2, 0x46, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa5, 0xff, 0x7a, 0xa6, 0xff, 0x72, 0xa6, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xc5, 0xff, 0x8a, 0xc4, 0xff, 0x52, 0x48, 0xff, 0x3a, 0x0a, 0xff, 0x4a, 0x28, 0xff, 0x52, 0x08, 0xff, 0xd1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x9a, 0x67, 0xff, 0xe4, 0x23, 0xf6, 0xcb, 0xc3, 0x9e, + 0xcb, 0xa4, 0xa3, 0xe2, 0x86, 0xfc, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc2, 0xe6, 0xff, 0x31, 0xe9, 0xff, 0x42, 0x28, 0xff, 0x42, 0x29, 0xff, 0x42, 0x4a, 0xff, 0x7a, 0x84, 0xff, 0x8a, 0x03, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xaa, 0x65, 0xff, 0x7a, 0xa5, 0xff, 0x62, 0x88, 0xff, 0x41, 0xe7, 0xff, 0x29, 0x86, 0xff, 0x29, 0x87, 0xff, 0x39, 0xe8, 0xff, 0x52, 0x69, 0xff, 0x5a, 0x67, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0x63, 0xff, 0x6a, 0x02, 0xff, 0x6a, 0x03, 0xff, 0x6a, 0x23, 0xff, 0x6a, 0x02, 0xff, 0x6a, 0x03, 0xff, 0x7a, 0x84, 0xff, 0x82, 0xc5, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x89, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xba, 0x27, 0xff, 0xe4, 0x23, 0xf6, 0xcb, 0xc3, 0x9e, + 0xd3, 0x45, 0xb3, 0xe2, 0x07, 0xfe, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd2, 0x07, 0xff, 0xb3, 0x65, 0xff, 0x31, 0xe9, 0xff, 0x42, 0x29, 0xff, 0x42, 0x4a, 0xff, 0x52, 0x05, 0xff, 0x61, 0x80, 0xff, 0x61, 0xe2, 0xff, 0x8a, 0x24, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x82, 0x29, 0xff, 0x3a, 0x0a, 0xff, 0x29, 0x66, 0xff, 0x31, 0xa7, 0xff, 0x31, 0xa7, 0xff, 0x29, 0x66, 0xff, 0x42, 0x2a, 0xff, 0x42, 0x2a, 0xff, 0x42, 0x29, 0xff, 0x5a, 0x05, 0xff, 0x72, 0x23, 0xff, 0x6a, 0x22, 0xff, 0x6a, 0x02, 0xff, 0x6a, 0x23, 0xff, 0x69, 0xe2, 0xff, 0x51, 0x60, 0xff, 0x7a, 0x42, 0xff, 0x62, 0xa8, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x49, 0xe9, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x07, 0xff, 0xe3, 0xe4, 0xf7, 0xcb, 0xc3, 0x9e, + 0xda, 0xc6, 0xc6, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xb2, 0x47, 0xff, 0xab, 0x65, 0xff, 0x31, 0xe9, 0xff, 0x42, 0x29, 0xff, 0x39, 0xc7, 0xff, 0x61, 0xe2, 0xff, 0xc5, 0x52, 0xff, 0xe6, 0xfa, 0xff, 0xef, 0x3b, 0xff, 0xed, 0xf7, 0xff, 0xe2, 0x8a, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x71, 0x86, 0xff, 0xad, 0x34, 0xff, 0xe7, 0x1c, 0xff, 0xe6, 0xfc, 0xff, 0x94, 0x72, 0xff, 0x29, 0x45, 0xff, 0x4a, 0x28, 0xff, 0x31, 0x87, 0xff, 0x84, 0x31, 0xff, 0xef, 0x1a, 0xff, 0xe6, 0xfa, 0xff, 0xef, 0x1b, 0xff, 0xef, 0x3c, 0xff, 0xee, 0xfa, 0xff, 0xc5, 0x73, 0xff, 0x69, 0xe2, 0xff, 0x6a, 0x03, 0xff, 0x4a, 0x49, 0xff, 0x42, 0x29, 0xff, 0x39, 0xe9, 0xff, 0xd2, 0x66, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe3, 0x64, 0xf9, 0xcb, 0xc3, 0x9e, + 0xda, 0x66, 0xd8, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0x9a, 0x87, 0xff, 0xab, 0x65, 0xff, 0x39, 0xe9, 0xff, 0x3a, 0x09, 0xff, 0x49, 0xa4, 0xff, 0xc5, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xbb, 0xff, 0xea, 0xcb, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xf5, 0x76, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x5d, 0xff, 0x39, 0xc7, 0xff, 0x39, 0xa6, 0xff, 0x39, 0x86, 0xff, 0xad, 0x75, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcd, 0xf5, 0xff, 0x69, 0xe1, 0xff, 0x52, 0x06, 0xff, 0x42, 0x29, 0xff, 0x39, 0xe9, 0xff, 0xc2, 0xe6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0xe5, 0xfb, 0xcb, 0xc3, 0x9e, + 0xe2, 0x47, 0xe7, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xc8, 0xff, 0x8a, 0x87, 0xff, 0xab, 0x65, 0xff, 0x3a, 0x09, 0xff, 0x31, 0xa7, 0xff, 0x6a, 0xa8, 0xff, 0xff, 0x9d, 0xff, 0xff, 0xff, 0xff, 0xbd, 0x53, 0xff, 0x72, 0x66, 0xff, 0x7a, 0xa7, 0xff, 0xd6, 0x58, 0xff, 0xfe, 0xbb, 0xff, 0xe2, 0x8a, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x08, 0xff, 0xed, 0x55, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0x63, 0x0c, 0xff, 0x21, 0x24, 0xff, 0x39, 0xa7, 0xff, 0xa5, 0x14, 0xff, 0xff, 0xff, 0xff, 0xd6, 0x58, 0xff, 0x72, 0x45, 0xff, 0x6a, 0x04, 0xff, 0xac, 0xb0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0xe5, 0xff, 0x51, 0xc3, 0xff, 0x42, 0x29, 0xff, 0x31, 0xe9, 0xff, 0xbb, 0x05, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x86, 0xfc, 0xcb, 0xc3, 0x9e, + 0xe2, 0x07, 0xf0, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb9, 0xc8, 0xff, 0x7a, 0xa7, 0xff, 0xab, 0x65, 0xff, 0x32, 0x0a, 0xff, 0x31, 0xa7, 0xff, 0x7b, 0x08, 0xff, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0x83, 0x08, 0xff, 0x48, 0xc0, 0xff, 0x48, 0xe0, 0xff, 0xac, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xe5, 0xf8, 0xff, 0xc9, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x08, 0xff, 0xc4, 0x10, 0xff, 0xff, 0xff, 0xff, 0x94, 0x92, 0xff, 0x20, 0xe3, 0xff, 0x31, 0x86, 0xff, 0xa5, 0x14, 0xff, 0xff, 0xff, 0xff, 0xad, 0x55, 0xff, 0x28, 0x20, 0xff, 0x38, 0x00, 0xff, 0x6a, 0x45, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8b, 0x27, 0xff, 0x59, 0xc2, 0xff, 0x42, 0x29, 0xff, 0x31, 0xe9, 0xff, 0xb3, 0x45, 0xff, 0xd2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x46, 0xfd, 0xc3, 0xc3, 0x9e, + 0xe1, 0xe7, 0xf7, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xa9, 0xa8, 0xff, 0x7a, 0xa7, 0xff, 0xab, 0x65, 0xff, 0x31, 0xea, 0xff, 0x39, 0xa7, 0xff, 0x83, 0x07, 0xff, 0xff, 0x9d, 0xff, 0xff, 0xff, 0xff, 0x93, 0x8a, 0xff, 0x61, 0xc0, 0xff, 0x7a, 0xa4, 0xff, 0x72, 0xe8, 0xff, 0x7b, 0xf0, 0xff, 0x6b, 0x4d, 0xff, 0x59, 0x86, 0xff, 0xc9, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe8, 0xff, 0xf5, 0xb6, 0xff, 0xce, 0x59, 0xff, 0x21, 0x04, 0xff, 0x29, 0x25, 0xff, 0xa5, 0x34, 0xff, 0xff, 0xff, 0xff, 0xce, 0x7a, 0xff, 0x7b, 0x4b, 0xff, 0x8b, 0x49, 0xff, 0xbd, 0x53, 0xff, 0xff, 0xff, 0xff, 0xde, 0x99, 0xff, 0x7a, 0x63, 0xff, 0x6a, 0x23, 0xff, 0x42, 0x29, 0xff, 0x31, 0xe9, 0xff, 0xb3, 0x45, 0xff, 0xca, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xfe, 0xc3, 0xc3, 0x9e, + 0xe1, 0xe7, 0xfb, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0x99, 0xc8, 0xff, 0x7a, 0xa7, 0xff, 0xab, 0x65, 0xff, 0x31, 0xea, 0xff, 0x39, 0xa7, 0xff, 0x83, 0x07, 0xff, 0xff, 0x9d, 0xff, 0xff, 0xff, 0xff, 0x93, 0x8a, 0xff, 0x61, 0xa0, 0xff, 0x8b, 0x06, 0xff, 0x52, 0x06, 0xff, 0x18, 0xe5, 0xff, 0x31, 0x86, 0xff, 0x31, 0x86, 0xff, 0x72, 0x6a, 0xff, 0xea, 0xaa, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x28, 0xff, 0xf5, 0x75, 0xff, 0x39, 0xc7, 0xff, 0x18, 0xc3, 0xff, 0xad, 0x34, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x83, 0x28, 0xff, 0x59, 0x60, 0xff, 0x7a, 0xc6, 0xff, 0x42, 0x29, 0xff, 0x31, 0xe9, 0xff, 0xb3, 0x65, 0xff, 0xc2, 0x27, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xfe, 0xc3, 0xc3, 0x9e, + 0xe1, 0xe7, 0xfa, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0x99, 0xc8, 0xff, 0x7a, 0xa7, 0xff, 0xab, 0x65, 0xff, 0x31, 0xea, 0xff, 0x39, 0xa7, 0xff, 0x83, 0x07, 0xff, 0xff, 0x9d, 0xff, 0xff, 0xff, 0xff, 0x93, 0xaa, 0xff, 0x61, 0xa0, 0xff, 0x8b, 0x06, 0xff, 0x51, 0xe5, 0xff, 0x19, 0x05, 0xff, 0x31, 0x66, 0xff, 0x31, 0x65, 0xff, 0x8c, 0x31, 0xff, 0xfe, 0xdb, 0xff, 0xe2, 0x8a, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x08, 0xff, 0x9a, 0xab, 0xff, 0x08, 0x41, 0xff, 0xa5, 0x14, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x3d, 0xff, 0xbd, 0xb5, 0xff, 0xcd, 0x93, 0xff, 0xe6, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xd6, 0x37, 0xff, 0x7a, 0x63, 0xff, 0x6a, 0x23, 0xff, 0x42, 0x29, 0xff, 0x31, 0xe9, 0xff, 0xb3, 0x65, 0xff, 0xc2, 0x27, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xfe, 0xc3, 0xc3, 0x9e, + 0xe2, 0x07, 0xf6, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xa9, 0xc8, 0xff, 0x7a, 0xa7, 0xff, 0xab, 0x65, 0xff, 0x31, 0xea, 0xff, 0x31, 0xa7, 0xff, 0x83, 0x08, 0xff, 0xff, 0x9d, 0xff, 0xff, 0xff, 0xff, 0x8b, 0x49, 0xff, 0x61, 0xa1, 0xff, 0x6a, 0x22, 0xff, 0x8b, 0x6a, 0xff, 0xc6, 0x19, 0xff, 0x94, 0x92, 0xff, 0x21, 0x04, 0xff, 0xa5, 0x14, 0xff, 0xff, 0xff, 0xff, 0xe5, 0xf7, 0xff, 0xda, 0x49, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe8, 0xff, 0x60, 0xe3, 0xff, 0xa4, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xa5, 0x57, 0xff, 0x20, 0x60, 0xff, 0x48, 0x80, 0xff, 0x61, 0xe4, 0xff, 0xf7, 0x9d, 0xff, 0xff, 0xff, 0xff, 0x9b, 0xca, 0xff, 0x61, 0xc1, 0xff, 0x42, 0x29, 0xff, 0x31, 0xe9, 0xff, 0xb3, 0x45, 0xff, 0xca, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xfe, 0xc3, 0xa3, 0x9e, + 0xe2, 0x07, 0xef, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb9, 0xc8, 0xff, 0x82, 0xa7, 0xff, 0xab, 0x65, 0xff, 0x32, 0x0a, 0xff, 0x31, 0xa7, 0xff, 0x7b, 0x08, 0xff, 0xff, 0xbe, 0xff, 0xff, 0xff, 0xff, 0x83, 0x09, 0xff, 0x38, 0x40, 0xff, 0x38, 0x40, 0xff, 0xb4, 0xd1, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x1c, 0xff, 0x31, 0xa6, 0xff, 0xc5, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xba, 0xff, 0xea, 0xcb, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xc7, 0xff, 0xb3, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xad, 0x56, 0xff, 0x30, 0x20, 0xff, 0x40, 0x40, 0xff, 0x51, 0x41, 0xff, 0xf7, 0x7d, 0xff, 0xff, 0xff, 0xff, 0x9b, 0xeb, 0xff, 0x59, 0xc2, 0xff, 0x42, 0x29, 0xff, 0x31, 0xe9, 0xff, 0xb3, 0x45, 0xff, 0xd2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x46, 0xfd, 0xc3, 0xa3, 0x9e, + 0xe2, 0x27, 0xe6, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xc7, 0xff, 0x8a, 0x87, 0xff, 0xab, 0x65, 0xff, 0x39, 0xe9, 0xff, 0x31, 0xc8, 0xff, 0x62, 0x67, 0xff, 0xf7, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xde, 0x78, 0xff, 0x9b, 0xec, 0xff, 0xa4, 0x4e, 0xff, 0xef, 0x1b, 0xff, 0xff, 0xff, 0xff, 0xbd, 0xd7, 0xff, 0x42, 0x08, 0xff, 0xf7, 0xbe, 0xff, 0xff, 0xff, 0xff, 0x7b, 0xcf, 0xff, 0x52, 0x8a, 0xff, 0x72, 0x6a, 0xff, 0xda, 0x29, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x08, 0xff, 0xf5, 0xb6, 0xff, 0xe6, 0xda, 0xff, 0x93, 0xac, 0xff, 0x8b, 0x8a, 0xff, 0xbd, 0x52, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8b, 0x27, 0xff, 0x51, 0xa3, 0xff, 0x42, 0x29, 0xff, 0x31, 0xe9, 0xff, 0xbb, 0x05, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x86, 0xfc, 0xc3, 0xa3, 0x9e, + 0xda, 0x66, 0xd8, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x9a, 0x67, 0xff, 0xab, 0x65, 0xff, 0x39, 0xe9, 0xff, 0x42, 0x09, 0xff, 0x41, 0x64, 0xff, 0xac, 0x4d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x4a, 0x29, 0xff, 0x73, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xef, 0x5d, 0xff, 0x10, 0xa2, 0xff, 0x10, 0x82, 0xff, 0x10, 0x62, 0xff, 0x51, 0x66, 0xff, 0xea, 0xaa, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x29, 0xff, 0xf5, 0xb6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc5, 0x93, 0xff, 0x69, 0xc1, 0xff, 0x4a, 0x07, 0xff, 0x42, 0x29, 0xff, 0x39, 0xe9, 0xff, 0xc2, 0xe6, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xe2, 0xe5, 0xfb, 0xc3, 0xa3, 0x9e, + 0xd2, 0xc6, 0xc4, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb2, 0x47, 0xff, 0xab, 0x65, 0xff, 0x31, 0xe9, 0xff, 0x42, 0x29, 0xff, 0x41, 0xe8, 0xff, 0x59, 0xa2, 0xff, 0xa4, 0x0b, 0xff, 0xbd, 0x73, 0xff, 0xc5, 0x73, 0xff, 0xc5, 0x73, 0xff, 0xbd, 0x52, 0xff, 0x93, 0x68, 0xff, 0x41, 0x00, 0xff, 0x7c, 0x11, 0xff, 0xad, 0xb8, 0xff, 0x7b, 0xf0, 0xff, 0x39, 0xa6, 0xff, 0x52, 0x69, 0xff, 0x4a, 0x49, 0xff, 0x39, 0xc7, 0xff, 0x9b, 0xae, 0xff, 0xda, 0x6a, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x08, 0xff, 0xcb, 0xee, 0xff, 0xc5, 0x73, 0xff, 0xc5, 0x94, 0xff, 0xa4, 0x4e, 0xff, 0x69, 0xe1, 0xff, 0x62, 0x24, 0xff, 0x4a, 0x4a, 0xff, 0x42, 0x29, 0xff, 0x39, 0xe9, 0xff, 0xd2, 0x87, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe3, 0x64, 0xf9, 0xc3, 0xa3, 0x9e, + 0xcb, 0x25, 0xb2, 0xe2, 0x07, 0xfe, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xb3, 0x45, 0xff, 0x31, 0xe9, 0xff, 0x42, 0x29, 0xff, 0x42, 0x4a, 0xff, 0x52, 0x27, 0xff, 0x71, 0xe0, 0xff, 0x61, 0xc1, 0xff, 0x61, 0xc1, 0xff, 0x61, 0xc1, 0xff, 0x61, 0xc1, 0xff, 0x61, 0xe2, 0xff, 0x82, 0xc5, 0xff, 0x6a, 0x44, 0xff, 0x29, 0x44, 0xff, 0x29, 0x67, 0xff, 0x42, 0x4a, 0xff, 0x42, 0x29, 0xff, 0x42, 0x4a, 0xff, 0x42, 0x49, 0xff, 0x29, 0x66, 0xff, 0x49, 0x46, 0xff, 0xc9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x99, 0xc4, 0xff, 0x61, 0xc1, 0xff, 0x61, 0xc1, 0xff, 0x7a, 0x63, 0xff, 0x5a, 0x88, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x49, 0xe9, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xdb, 0xc3, 0xf7, 0xc3, 0xa3, 0x9e, + 0xc3, 0x84, 0xa3, 0xe2, 0x86, 0xfc, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc2, 0xc6, 0xff, 0x31, 0xe9, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x72, 0xa6, 0xff, 0x82, 0xa4, 0xff, 0x72, 0x85, 0xff, 0x7a, 0x85, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa6, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa4, 0xff, 0x7a, 0x85, 0xff, 0x6a, 0x86, 0xff, 0x52, 0x48, 0xff, 0x4a, 0x48, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x48, 0xff, 0x52, 0x48, 0xff, 0x6a, 0x66, 0xff, 0x92, 0x85, 0xff, 0xda, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xa2, 0x46, 0xff, 0x8a, 0xc4, 0xff, 0x7a, 0xa6, 0xff, 0x42, 0x09, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x89, 0xe8, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xba, 0x27, 0xff, 0xdb, 0xe3, 0xf6, 0xc3, 0xa3, 0x9e, + 0xc3, 0xa3, 0x9e, 0xe3, 0x25, 0xfa, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x27, 0xff, 0x39, 0xe9, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x3a, 0x09, 0xff, 0x4a, 0x49, 0xff, 0x8a, 0xc4, 0xff, 0x82, 0xc5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xc4, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa5, 0xff, 0x82, 0xc4, 0xff, 0x7a, 0xa5, 0xff, 0x92, 0x66, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xaa, 0x65, 0xff, 0x4a, 0x29, 0xff, 0x3a, 0x09, 0xff, 0x4a, 0x28, 0xff, 0x52, 0x08, 0xff, 0xc9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x9a, 0x67, 0xff, 0xdc, 0x03, 0xf6, 0xc3, 0xa3, 0x9e, + 0xc3, 0xa3, 0x9e, 0xdb, 0xc3, 0xf7, 0xd2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x81, 0xe8, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x3a, 0x0a, 0xff, 0x52, 0x48, 0xff, 0x8a, 0xc4, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x92, 0x66, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x7a, 0x09, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x9a, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb1, 0xc8, 0xff, 0x7a, 0xa6, 0xff, 0xdc, 0x03, 0xf6, 0xc3, 0xa3, 0x9e, + 0xc3, 0xa3, 0x9e, 0xdc, 0x03, 0xf6, 0xaa, 0x47, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x62, 0x08, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x3a, 0x0a, 0xff, 0x52, 0x48, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x92, 0x66, 0xff, 0xd2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x7a, 0x28, 0xff, 0x72, 0x28, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x59, 0x89, 0xff, 0x72, 0xa6, 0xff, 0xdc, 0x03, 0xf6, 0xc3, 0xa3, 0x9e, + 0xc3, 0xa3, 0x9e, 0xdb, 0xe3, 0xf6, 0x7a, 0xa6, 0xff, 0xb9, 0xc8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb9, 0xe8, 0xff, 0x5a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x3a, 0x0a, 0xff, 0x52, 0x48, 0xff, 0x7a, 0xa5, 0xff, 0x8a, 0xc4, 0xff, 0x82, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa5, 0xff, 0x8a, 0xc4, 0xff, 0x92, 0x85, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xc2, 0x27, 0xff, 0x11, 0x6a, 0xff, 0x72, 0xa6, 0xff, 0xdb, 0xe3, 0xf6, 0xc3, 0xa3, 0x9e, + 0xbb, 0xa3, 0x9e, 0xdb, 0xe3, 0xf6, 0x72, 0xa6, 0xff, 0x41, 0x89, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb1, 0xe8, 0xff, 0x52, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x3a, 0x2a, 0xff, 0x42, 0x29, 0xff, 0x62, 0x67, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x62, 0x67, 0xff, 0x42, 0x29, 0xff, 0x62, 0x09, 0xff, 0xc9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0x8a, 0x87, 0xff, 0x11, 0x6a, 0xff, 0x72, 0xa6, 0xff, 0xdb, 0xe3, 0xf6, 0xbb, 0xa3, 0x9e, + 0xbb, 0xa3, 0x9e, 0xdb, 0xe3, 0xf6, 0x72, 0xa6, 0xff, 0x11, 0x6a, 0xff, 0xaa, 0x47, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb1, 0xe8, 0xff, 0x5a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x0a, 0xff, 0x4a, 0x29, 0xff, 0x62, 0x67, 0xff, 0x72, 0x85, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0x85, 0xff, 0x62, 0x67, 0xff, 0x4a, 0x29, 0xff, 0x3a, 0x0a, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x62, 0x29, 0xff, 0xc9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xc2, 0xc6, 0xff, 0x72, 0xc7, 0xff, 0x11, 0x6a, 0xff, 0x72, 0xa6, 0xff, 0xdb, 0xe3, 0xf6, 0xbb, 0xa3, 0x9e, + 0xbb, 0xa3, 0x9e, 0xdb, 0xe3, 0xf6, 0x72, 0xa6, 0xff, 0x11, 0x6a, 0xff, 0x7a, 0xa7, 0xff, 0xca, 0x86, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb9, 0xe8, 0xff, 0x6a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x2a, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x52, 0x48, 0xff, 0x5a, 0x47, 0xff, 0x5a, 0x67, 0xff, 0x5a, 0x47, 0xff, 0x52, 0x48, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x2a, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x29, 0xff, 0x6a, 0x28, 0xff, 0xc9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x91, 0xe8, 0xff, 0xab, 0x65, 0xff, 0x72, 0xc7, 0xff, 0x11, 0x6a, 0xff, 0x72, 0xa6, 0xff, 0xdb, 0xe3, 0xf6, 0xbb, 0xa3, 0x9e, + 0xbb, 0xa3, 0x9e, 0xdb, 0xe3, 0xf6, 0x72, 0xa6, 0xff, 0x11, 0x6a, 0xff, 0x7a, 0xc6, 0xff, 0xb3, 0x65, 0xff, 0xa1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x92, 0x08, 0xff, 0x52, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x5a, 0x29, 0xff, 0x9a, 0x08, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x99, 0xe8, 0xff, 0x39, 0xe9, 0xff, 0xab, 0x85, 0xff, 0x7a, 0xc6, 0xff, 0x11, 0x6a, 0xff, 0x72, 0xa6, 0xff, 0xdb, 0xe3, 0xf6, 0xbb, 0xa3, 0x9e, + 0xbb, 0xa3, 0x9e, 0xdc, 0x02, 0xf6, 0x62, 0x67, 0xff, 0x00, 0xcb, 0xff, 0x5a, 0x67, 0xff, 0xa3, 0x45, 0xff, 0x31, 0xc9, 0xff, 0xa2, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc9, 0xe8, 0xff, 0x8a, 0x08, 0xff, 0x5a, 0x28, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x49, 0xff, 0x62, 0x28, 0xff, 0x92, 0x08, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x9a, 0x08, 0xff, 0x4a, 0x28, 0xff, 0x29, 0xc9, 0xff, 0xa3, 0x45, 0xff, 0x5a, 0x67, 0xff, 0x00, 0xcb, 0xff, 0x62, 0x67, 0xff, 0xdc, 0x02, 0xf6, 0xbb, 0xa3, 0x9e, + 0xbb, 0x83, 0x9e, 0xcb, 0xa3, 0xf6, 0x9b, 0x25, 0xff, 0x72, 0xa7, 0xff, 0xb3, 0x85, 0xff, 0xb3, 0x84, 0xff, 0x21, 0xaa, 0xff, 0x31, 0xc9, 0xff, 0x89, 0xe8, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xd1, 0xe7, 0xff, 0xa1, 0xe8, 0xff, 0x79, 0xe9, 0xff, 0x61, 0xe9, 0xff, 0x51, 0xe9, 0xff, 0x42, 0x09, 0xff, 0x42, 0x09, 0xff, 0x42, 0x09, 0xff, 0x42, 0x09, 0xff, 0x51, 0xe9, 0xff, 0x61, 0xe9, 0xff, 0x79, 0xe8, 0xff, 0xa1, 0xe8, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x79, 0xe8, 0xff, 0x3a, 0x09, 0xff, 0x31, 0xc9, 0xff, 0x21, 0xaa, 0xff, 0xb3, 0x85, 0xff, 0xab, 0x85, 0xff, 0x72, 0xa7, 0xff, 0x9b, 0x25, 0xff, 0xcb, 0xa3, 0xf6, 0xbb, 0x83, 0x9e, + 0xbb, 0x83, 0x9e, 0xb3, 0x64, 0xf6, 0xe4, 0x23, 0xff, 0xfc, 0xc2, 0xff, 0xf4, 0x63, 0xff, 0xfc, 0x82, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x42, 0x09, 0xff, 0x72, 0x28, 0xff, 0xb9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xc9, 0xe7, 0xff, 0xc1, 0xe8, 0xff, 0xb9, 0xe8, 0xff, 0xb9, 0xe8, 0xff, 0xc1, 0xe8, 0xff, 0xc9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb1, 0xe8, 0xff, 0x6a, 0x08, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x09, 0xff, 0x29, 0xc9, 0xff, 0xa3, 0x45, 0xff, 0xfc, 0x82, 0xff, 0xf4, 0x62, 0xff, 0xfc, 0xc2, 0xff, 0xe4, 0x23, 0xff, 0xb3, 0x64, 0xf6, 0xbb, 0x83, 0x9e, + 0xc3, 0x83, 0x9f, 0xd3, 0xc3, 0xf6, 0x7a, 0xa6, 0xff, 0x42, 0x08, 0xff, 0x42, 0x08, 0xff, 0xa3, 0x45, 0xff, 0xfc, 0x82, 0xff, 0xbb, 0xa4, 0xff, 0xb3, 0x84, 0xff, 0xbb, 0xa4, 0xff, 0xbb, 0x85, 0xff, 0xca, 0xe6, 0xff, 0xda, 0x47, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x47, 0xff, 0xca, 0xe5, 0xff, 0xbb, 0x84, 0xff, 0xbb, 0xa4, 0xff, 0xbb, 0xa4, 0xff, 0xb3, 0x85, 0xff, 0xbb, 0xa4, 0xff, 0xfc, 0x82, 0xff, 0xa3, 0x45, 0xff, 0x42, 0x08, 0xff, 0x42, 0x08, 0xff, 0x72, 0xa6, 0xff, 0xd3, 0xe3, 0xf6, 0xbb, 0x83, 0x9f, + 0xbb, 0x83, 0xb1, 0xe4, 0x02, 0xff, 0x62, 0x67, 0xf8, 0x01, 0x0a, 0xf9, 0x09, 0x2a, 0xff, 0x6a, 0x87, 0xff, 0xfc, 0x82, 0xff, 0x7a, 0xc6, 0xff, 0x3a, 0x09, 0xff, 0x5a, 0x68, 0xff, 0x5a, 0x68, 0xff, 0x5a, 0x68, 0xff, 0x62, 0x48, 0xff, 0x8a, 0x28, 0xff, 0xb2, 0x08, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0xb2, 0x08, 0xff, 0x8a, 0x28, 0xff, 0x62, 0x48, 0xff, 0x5a, 0x68, 0xff, 0x5a, 0x68, 0xff, 0x5a, 0x68, 0xff, 0x5a, 0x68, 0xff, 0x3a, 0x09, 0xff, 0x7a, 0xc6, 0xff, 0xfc, 0x82, 0xff, 0x6a, 0x87, 0xff, 0x09, 0x2a, 0xff, 0x01, 0x0b, 0xf8, 0x62, 0x67, 0xf8, 0xe4, 0x02, 0xff, 0xbb, 0x83, 0xb1, + 0xb3, 0x63, 0x85, 0xcb, 0xc3, 0xfb, 0xc3, 0xa3, 0xfb, 0x42, 0x08, 0xf0, 0x01, 0x0b, 0xf9, 0x6a, 0xa7, 0xff, 0xfc, 0xc2, 0xff, 0x42, 0x09, 0xff, 0x01, 0x0b, 0xff, 0x19, 0x8a, 0xff, 0x19, 0x8a, 0xff, 0x19, 0x8a, 0xff, 0x19, 0x8a, 0xff, 0x19, 0x8a, 0xff, 0x21, 0x8a, 0xff, 0x39, 0xa9, 0xff, 0x61, 0xa9, 0xff, 0x89, 0xc9, 0xff, 0xa9, 0xc8, 0xff, 0xb9, 0xc8, 0xff, 0xc9, 0xc8, 0xff, 0xd1, 0xc8, 0xff, 0xd1, 0xc8, 0xff, 0xc9, 0xc8, 0xff, 0xb9, 0xc8, 0xff, 0xa1, 0xc8, 0xff, 0x81, 0xc9, 0xff, 0x59, 0xa9, 0xff, 0x39, 0xaa, 0xff, 0x21, 0x8a, 0xff, 0x19, 0x8a, 0xff, 0x19, 0x8a, 0xff, 0x19, 0x8a, 0xff, 0x19, 0x8a, 0xff, 0x19, 0x8a, 0xff, 0x19, 0x8a, 0xff, 0x01, 0x0b, 0xff, 0x42, 0x08, 0xff, 0xfc, 0xc2, 0xff, 0x6a, 0xa7, 0xff, 0x01, 0x0b, 0xf9, 0x42, 0x08, 0xef, 0xc3, 0xa3, 0xfb, 0xcb, 0xc3, 0xfb, 0xb3, 0x63, 0x85, + 0xb3, 0xc3, 0x0d, 0xb3, 0x83, 0x9e, 0xd3, 0xe3, 0xff, 0xcb, 0xc3, 0xff, 0x7a, 0xa6, 0xff, 0x9b, 0x05, 0xff, 0xd3, 0xe3, 0xff, 0x93, 0x05, 0xff, 0x7a, 0xa6, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x8a, 0xe5, 0xff, 0x7a, 0xa6, 0xff, 0x93, 0x05, 0xff, 0xd3, 0xe3, 0xff, 0x9b, 0x05, 0xff, 0x7a, 0xa6, 0xff, 0xcb, 0xc3, 0xff, 0xd3, 0xe3, 0xff, 0xb3, 0x83, 0x9e, 0xb3, 0xc3, 0x0d, + 0x00, 0x00, 0x00, 0xb3, 0x43, 0x0a, 0xb3, 0x84, 0x91, 0xcb, 0xc3, 0xe5, 0xe4, 0x02, 0xe3, 0xcb, 0xa3, 0xd9, 0xab, 0x44, 0xda, 0xcb, 0xc3, 0xda, 0xdb, 0xe2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xd3, 0xc2, 0xda, 0xdb, 0xe2, 0xda, 0xcb, 0xc3, 0xda, 0xab, 0x44, 0xda, 0xcb, 0xa3, 0xd9, 0xe4, 0x02, 0xe3, 0xcb, 0xc3, 0xe5, 0xb3, 0x84, 0x91, 0xb3, 0x43, 0x0a, 0x00, 0x00, 0x00, +#endif +#if LV_COLOR_DEPTH == 32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x8d, 0xe7, 0x5e, 0x22, 0x8c, 0xe6, 0xd7, 0x22, 0x8c, 0xe6, 0xff, 0x22, 0x8c, 0xe6, 0xff, 0x22, 0x8c, 0xe6, 0xfd, 0x22, 0x8c, 0xe6, 0xfe, 0x22, 0x8c, 0xe6, 0xfe, 0x22, 0x8c, 0xe6, 0xfe, 0x22, 0x8c, 0xe6, 0xfe, 0x22, 0x8c, 0xe6, 0xfe, 0x22, 0x8c, 0xe6, 0xfe, 0x22, 0x8c, 0xe6, 0xfe, 0x22, 0x8c, 0xe6, 0xfe, 0x22, 0x8c, 0xe6, 0xfe, 0x22, 0x8c, 0xe6, 0xfe, 0x22, 0x8c, 0xe6, 0xfe, 0x22, 0x8c, 0xe6, 0xfe, 0x22, 0x8c, 0xe6, 0xfe, 0x22, 0x8c, 0xe6, 0xfd, 0x22, 0x8c, 0xe6, 0xff, 0x22, 0x8c, 0xe6, 0xff, 0x22, 0x8c, 0xe6, 0xd7, 0x21, 0x8d, 0xe3, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x8d, 0xe6, 0x6e, 0x21, 0x8c, 0xe6, 0xff, 0x22, 0x8c, 0xe8, 0xe4, 0x23, 0x8c, 0xe9, 0xa0, 0x22, 0x8d, 0xe6, 0xa6, 0x22, 0x8e, 0xe7, 0xab, 0x23, 0x8d, 0xe7, 0xaa, 0x23, 0x8d, 0xe7, 0xaa, 0x23, 0x8d, 0xe7, 0xaa, 0x23, 0x8d, 0xe7, 0xaa, 0x23, 0x8d, 0xe7, 0xaa, 0x23, 0x8d, 0xe7, 0xaa, 0x23, 0x8d, 0xe7, 0xaa, 0x23, 0x8d, 0xe7, 0xaa, 0x23, 0x8d, 0xe7, 0xaa, 0x23, 0x8d, 0xe7, 0xaa, 0x23, 0x8d, 0xe7, 0xaa, 0x23, 0x8d, 0xe7, 0xaa, 0x23, 0x8d, 0xe7, 0xaa, 0x22, 0x8e, 0xe7, 0xab, 0x22, 0x8d, 0xe6, 0xa5, 0x21, 0x8c, 0xe9, 0xa0, 0x22, 0x8c, 0xe5, 0xe4, 0x21, 0x8c, 0xe4, 0xff, 0x21, 0x8c, 0xe8, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x8d, 0xf2, 0x26, 0x22, 0x8b, 0xe3, 0xff, 0x22, 0x8e, 0xe9, 0xc5, 0x23, 0x8b, 0xe8, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x8b, 0xe8, 0x16, 0x22, 0x8e, 0xea, 0xc5, 0x21, 0x8a, 0xe4, 0xff, 0x28, 0x8d, 0xeb, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x8b, 0xe6, 0x5a, 0x23, 0x91, 0xec, 0xff, 0x26, 0x91, 0xf0, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x94, 0xf4, 0x43, 0x24, 0x90, 0xed, 0xff, 0x22, 0x8b, 0xe6, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xbf, 0x04, 0x1d, 0x75, 0xc0, 0x3d, 0x1e, 0x76, 0xc2, 0x43, 0x1e, 0x79, 0xc2, 0x3b, 0x1e, 0x77, 0xc8, 0x3c, 0x1e, 0x79, 0xc2, 0x3b, 0x19, 0x75, 0xbd, 0x32, 0x1e, 0x80, 0xd1, 0x8f, 0x23, 0x91, 0xed, 0xff, 0x1e, 0x7e, 0xcf, 0x65, 0x1a, 0x72, 0xbb, 0x31, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1e, 0x77, 0xbf, 0x3c, 0x1a, 0x72, 0xbb, 0x31, 0x1e, 0x7e, 0xcf, 0x65, 0x23, 0x91, 0xed, 0xff, 0x1e, 0x80, 0xd2, 0x8f, 0x19, 0x75, 0xbd, 0x32, 0x1e, 0x79, 0xc2, 0x3b, 0x1e, 0x77, 0xc8, 0x3c, 0x1e, 0x77, 0xc3, 0x3c, 0x1b, 0x78, 0xc1, 0x42, 0x1d, 0x75, 0xc0, 0x3d, 0x00, 0x80, 0xbf, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x22, 0x77, 0xc3, 0x1e, 0x1f, 0x74, 0xc1, 0xc0, 0x19, 0x83, 0xde, 0xf7, 0x14, 0x8f, 0xf4, 0xfa, 0x1a, 0x84, 0xde, 0xf6, 0x21, 0x76, 0xbf, 0xf7, 0x19, 0x86, 0xe4, 0xf7, 0x15, 0x8d, 0xf0, 0xf0, 0x16, 0x89, 0xe6, 0xf9, 0x17, 0x87, 0xe6, 0xff, 0x16, 0x86, 0xe4, 0xf6, 0x16, 0x89, 0xe8, 0xef, 0x16, 0x8b, 0xec, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8a, 0xeb, 0xf7, 0x16, 0x8b, 0xec, 0xf7, 0x16, 0x89, 0xe9, 0xef, 0x16, 0x86, 0xe4, 0xf6, 0x17, 0x87, 0xe6, 0xff, 0x16, 0x89, 0xe6, 0xf9, 0x15, 0x8d, 0xf0, 0xf0, 0x19, 0x86, 0xe4, 0xf7, 0x21, 0x76, 0xbf, 0xf7, 0x1a, 0x84, 0xde, 0xf7, 0x14, 0x8f, 0xf3, 0xfa, 0x19, 0x83, 0xdd, 0xf7, 0x1f, 0x75, 0xc1, 0xc0, 0x22, 0x77, 0xc3, 0x1e, 0x00, 0x00, 0x00, 0x00, + 0x24, 0x79, 0xc2, 0x15, 0x1f, 0x77, 0xbf, 0xb6, 0x18, 0x88, 0xe6, 0xff, 0x1f, 0x7e, 0xcf, 0xff, 0x35, 0x50, 0x6f, 0xff, 0x2a, 0x65, 0x96, 0xff, 0x15, 0x88, 0xe6, 0xff, 0x2b, 0x61, 0x90, 0xff, 0x34, 0x55, 0x71, 0xff, 0x2f, 0x5b, 0x7e, 0xff, 0x2f, 0x58, 0x7c, 0xff, 0x2f, 0x5a, 0x7f, 0xff, 0x30, 0x5b, 0x80, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x2f, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x80, 0xff, 0x2f, 0x5a, 0x7f, 0xff, 0x2f, 0x58, 0x7c, 0xff, 0x2f, 0x5b, 0x7e, 0xff, 0x34, 0x55, 0x71, 0xff, 0x2b, 0x61, 0x90, 0xff, 0x15, 0x88, 0xe6, 0xff, 0x2a, 0x65, 0x96, 0xff, 0x35, 0x50, 0x6e, 0xff, 0x1f, 0x7e, 0xd0, 0xff, 0x18, 0x87, 0xe7, 0xff, 0x1f, 0x76, 0xc0, 0xb6, 0x1a, 0x80, 0xbf, 0x14, + 0x1f, 0x74, 0xc1, 0x95, 0x19, 0x84, 0xe1, 0xfc, 0x1f, 0x7b, 0xc7, 0xfb, 0x41, 0x36, 0x2b, 0xf1, 0x50, 0x18, 0x00, 0xfb, 0x34, 0x4e, 0x65, 0xff, 0x0c, 0x94, 0xff, 0xff, 0x3f, 0x3c, 0x3a, 0xff, 0x54, 0x1a, 0x00, 0xff, 0x4b, 0x2a, 0x13, 0xff, 0x4b, 0x2b, 0x13, 0xff, 0x4b, 0x2a, 0x11, 0xff, 0x4b, 0x2a, 0x12, 0xff, 0x4c, 0x2b, 0x12, 0xff, 0x4b, 0x2c, 0x1c, 0xff, 0x49, 0x2e, 0x3d, 0xff, 0x45, 0x31, 0x63, 0xff, 0x42, 0x34, 0x8b, 0xff, 0x3f, 0x36, 0xa8, 0xff, 0x3d, 0x37, 0xbd, 0xff, 0x3c, 0x38, 0xcc, 0xff, 0x3b, 0x39, 0xd4, 0xff, 0x3b, 0x39, 0xd4, 0xff, 0x3c, 0x38, 0xcc, 0xff, 0x3d, 0x37, 0xbc, 0xff, 0x40, 0x37, 0xa8, 0xff, 0x42, 0x34, 0x87, 0xff, 0x46, 0x31, 0x5f, 0xff, 0x49, 0x2e, 0x38, 0xff, 0x4b, 0x2c, 0x19, 0xff, 0x4c, 0x2b, 0x12, 0xff, 0x4b, 0x2b, 0x11, 0xff, 0x4b, 0x2a, 0x12, 0xff, 0x4b, 0x2a, 0x11, 0xff, 0x4b, 0x2b, 0x13, 0xff, 0x4b, 0x2a, 0x13, 0xff, 0x54, 0x1a, 0x00, 0xff, 0x3f, 0x3c, 0x3a, 0xff, 0x0c, 0x94, 0xff, 0xff, 0x34, 0x4e, 0x65, 0xff, 0x50, 0x18, 0x00, 0xfb, 0x41, 0x36, 0x2c, 0xf2, 0x20, 0x7b, 0xc7, 0xfc, 0x19, 0x86, 0xe1, 0xfd, 0x1f, 0x77, 0xc1, 0x94, + 0x1d, 0x7b, 0xcb, 0xaa, 0x16, 0x8f, 0xf6, 0xfc, 0x36, 0x4f, 0x63, 0xf9, 0x4e, 0x1c, 0x00, 0xfb, 0x4b, 0x29, 0x0b, 0xff, 0x34, 0x52, 0x6c, 0xff, 0x0f, 0x90, 0xfd, 0xff, 0x2c, 0x60, 0x8c, 0xff, 0x39, 0x4a, 0x5a, 0xff, 0x34, 0x53, 0x70, 0xff, 0x33, 0x54, 0x6f, 0xff, 0x33, 0x54, 0x6f, 0xff, 0x34, 0x51, 0x7c, 0xff, 0x36, 0x4a, 0x9e, 0xff, 0x38, 0x42, 0xbd, 0xff, 0x3a, 0x3d, 0xda, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3d, 0xd6, 0xff, 0x39, 0x44, 0xba, 0xff, 0x37, 0x4b, 0x9a, 0xff, 0x35, 0x52, 0x7a, 0xff, 0x33, 0x54, 0x6f, 0xff, 0x33, 0x54, 0x6f, 0xff, 0x33, 0x54, 0x6f, 0xff, 0x34, 0x53, 0x70, 0xff, 0x39, 0x49, 0x5a, 0xff, 0x2c, 0x60, 0x8c, 0xff, 0x0f, 0x90, 0xfd, 0xff, 0x34, 0x52, 0x6c, 0xff, 0x4b, 0x29, 0x0b, 0xff, 0x4e, 0x1b, 0x00, 0xfc, 0x36, 0x4e, 0x63, 0xfa, 0x16, 0x90, 0xf6, 0xfc, 0x1d, 0x7a, 0xc9, 0xaa, + 0x1f, 0x7c, 0xcb, 0x9e, 0x1b, 0x84, 0xdc, 0xf6, 0x2a, 0x64, 0x96, 0xff, 0x33, 0x53, 0x6f, 0xff, 0x35, 0x52, 0x6c, 0xff, 0x22, 0x74, 0xb9, 0xff, 0x13, 0x8d, 0xf5, 0xff, 0x2a, 0x65, 0x97, 0xff, 0x2a, 0x63, 0x93, 0xff, 0x29, 0x67, 0x9d, 0xff, 0x2a, 0x64, 0xa0, 0xff, 0x31, 0x52, 0xbd, 0xff, 0x37, 0x43, 0xd4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x44, 0xd2, 0xff, 0x30, 0x54, 0xba, 0xff, 0x2a, 0x65, 0x9f, 0xff, 0x29, 0x67, 0x9b, 0xff, 0x29, 0x67, 0x9d, 0xff, 0x2a, 0x63, 0x93, 0xff, 0x2a, 0x64, 0x97, 0xff, 0x12, 0x8e, 0xf5, 0xff, 0x22, 0x73, 0xb9, 0xff, 0x35, 0x52, 0x6b, 0xff, 0x33, 0x53, 0x70, 0xff, 0x2b, 0x64, 0x96, 0xff, 0x1a, 0x84, 0xdc, 0xf6, 0x1d, 0x7c, 0xcb, 0x9e, + 0x1f, 0x79, 0xc7, 0x9e, 0x21, 0x77, 0xc3, 0xf6, 0x18, 0x87, 0xe7, 0xff, 0x11, 0x92, 0xfe, 0xff, 0x13, 0x8e, 0xf5, 0xff, 0x15, 0x8a, 0xeb, 0xff, 0x30, 0x5d, 0x82, 0xff, 0x4a, 0x31, 0x1d, 0xff, 0x45, 0x3b, 0x34, 0xff, 0x41, 0x3c, 0x6a, 0xff, 0x3d, 0x3b, 0xb7, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3a, 0xd7, 0xff, 0x3c, 0x3b, 0xc1, 0xff, 0x3e, 0x3c, 0xb5, 0xff, 0x3e, 0x3c, 0xad, 0xff, 0x3e, 0x3c, 0xad, 0xff, 0x3d, 0x3b, 0xb5, 0xff, 0x3b, 0x3a, 0xc2, 0xff, 0x3b, 0x3a, 0xd8, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3d, 0x3b, 0xb1, 0xff, 0x42, 0x3c, 0x62, 0xff, 0x44, 0x3d, 0x38, 0xff, 0x45, 0x3b, 0x34, 0xff, 0x4b, 0x31, 0x1c, 0xff, 0x2f, 0x5d, 0x83, 0xff, 0x14, 0x8a, 0xed, 0xff, 0x13, 0x8e, 0xf5, 0xff, 0x11, 0x92, 0xfe, 0xff, 0x18, 0x87, 0xe7, 0xff, 0x21, 0x77, 0xc3, 0xf6, 0x1f, 0x79, 0xc7, 0x9e, + 0x1d, 0x7b, 0xcb, 0x9e, 0x19, 0x86, 0xe3, 0xf6, 0x2e, 0x5c, 0x83, 0xff, 0x45, 0x34, 0x33, 0xff, 0x2f, 0x5e, 0x86, 0xff, 0x28, 0x6a, 0xa1, 0xff, 0x4c, 0x2e, 0x15, 0xff, 0x43, 0x40, 0x40, 0xff, 0x3d, 0x3f, 0x92, 0xff, 0x3a, 0x3a, 0xdc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3b, 0x3b, 0xd0, 0xff, 0x3e, 0x3e, 0x9d, 0xff, 0x41, 0x40, 0x76, 0xff, 0x42, 0x41, 0x62, 0xff, 0x43, 0x42, 0x53, 0xff, 0x44, 0x43, 0x4a, 0xff, 0x44, 0x43, 0x49, 0xff, 0x44, 0x43, 0x49, 0xff, 0x44, 0x43, 0x4b, 0xff, 0x43, 0x42, 0x55, 0xff, 0x42, 0x41, 0x63, 0xff, 0x41, 0x41, 0x7a, 0xff, 0x3f, 0x3e, 0xa1, 0xff, 0x3b, 0x3b, 0xd2, 0xff, 0x39, 0x39, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xd9, 0xff, 0x3f, 0x3f, 0x86, 0xff, 0x41, 0x45, 0x4a, 0xff, 0x43, 0x3f, 0x3d, 0xff, 0x4d, 0x2e, 0x16, 0xff, 0x26, 0x6a, 0xa2, 0xff, 0x2e, 0x5e, 0x87, 0xff, 0x46, 0x34, 0x33, 0xff, 0x2e, 0x5c, 0x83, 0xff, 0x19, 0x86, 0xe3, 0xf6, 0x1d, 0x7b, 0xcb, 0x9e, + 0x1b, 0x7c, 0xcb, 0x9e, 0x15, 0x8a, 0xed, 0xf6, 0x37, 0x4e, 0x61, 0xff, 0x58, 0x16, 0x00, 0xff, 0x39, 0x4b, 0x5b, 0xff, 0x28, 0x69, 0xa1, 0xff, 0x48, 0x38, 0x34, 0xff, 0x3d, 0x3e, 0xa4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3c, 0x3c, 0xc3, 0xff, 0x40, 0x41, 0x83, 0xff, 0x43, 0x44, 0x55, 0xff, 0x44, 0x45, 0x46, 0xff, 0x43, 0x45, 0x47, 0xff, 0x43, 0x45, 0x47, 0xff, 0x43, 0x45, 0x47, 0xff, 0x44, 0x44, 0x46, 0xff, 0x44, 0x44, 0x46, 0xff, 0x44, 0x44, 0x46, 0xff, 0x44, 0x44, 0x46, 0xff, 0x44, 0x44, 0x46, 0xff, 0x43, 0x45, 0x47, 0xff, 0x43, 0x45, 0x47, 0xff, 0x43, 0x45, 0x48, 0xff, 0x43, 0x44, 0x58, 0xff, 0x40, 0x41, 0x88, 0xff, 0x3d, 0x3d, 0xc3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xe1, 0xff, 0x3e, 0x3f, 0x9a, 0xff, 0x42, 0x43, 0x4a, 0xff, 0x49, 0x38, 0x2c, 0xff, 0x27, 0x69, 0xa1, 0xff, 0x39, 0x4b, 0x5b, 0xff, 0x58, 0x16, 0x00, 0xff, 0x38, 0x4e, 0x61, 0xff, 0x16, 0x8a, 0xed, 0xf6, 0x1d, 0x7c, 0xcb, 0x9e, + 0x1d, 0x7b, 0xcb, 0x9e, 0x17, 0x87, 0xe6, 0xf6, 0x33, 0x56, 0x76, 0xff, 0x4d, 0x2a, 0x0c, 0xff, 0x33, 0x56, 0x73, 0xff, 0x26, 0x6a, 0xad, 0xff, 0x3e, 0x3a, 0xa4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xcc, 0xff, 0x40, 0x40, 0x8a, 0xff, 0x43, 0x43, 0x4f, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x43, 0x44, 0x47, 0xff, 0x44, 0x43, 0x45, 0xff, 0x47, 0x42, 0x3f, 0xff, 0x4a, 0x41, 0x3b, 0xff, 0x4b, 0x41, 0x3a, 0xff, 0x4a, 0x41, 0x3b, 0xff, 0x4a, 0x40, 0x3b, 0xff, 0x4a, 0x41, 0x3b, 0xff, 0x4b, 0x41, 0x3a, 0xff, 0x4a, 0x41, 0x3b, 0xff, 0x47, 0x42, 0x3f, 0xff, 0x44, 0x43, 0x45, 0xff, 0x43, 0x44, 0x47, 0xff, 0x44, 0x44, 0x45, 0xff, 0x43, 0x43, 0x52, 0xff, 0x3e, 0x3e, 0x94, 0xff, 0x3b, 0x3b, 0xd6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x3c, 0x9d, 0xff, 0x48, 0x3b, 0x39, 0xff, 0x25, 0x6d, 0xaa, 0xff, 0x33, 0x56, 0x73, 0xff, 0x4d, 0x2a, 0x0c, 0xff, 0x33, 0x56, 0x76, 0xff, 0x17, 0x87, 0xe6, 0xf6, 0x1b, 0x7b, 0xcb, 0x9e, + 0x1b, 0x7b, 0xcb, 0x9e, 0x17, 0x87, 0xe6, 0xf6, 0x33, 0x55, 0x75, 0xff, 0x4e, 0x29, 0x09, 0xff, 0x34, 0x55, 0x74, 0xff, 0x32, 0x4d, 0xcc, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3c, 0xc8, 0xff, 0x42, 0x42, 0x5d, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x43, 0x45, 0x47, 0xff, 0x45, 0x43, 0x44, 0xff, 0x4a, 0x41, 0x3c, 0xff, 0x4b, 0x40, 0x3a, 0xff, 0x45, 0x43, 0x42, 0xff, 0x3f, 0x47, 0x4d, 0xff, 0x39, 0x4b, 0x59, 0xff, 0x35, 0x4b, 0x5f, 0xff, 0x34, 0x4c, 0x60, 0xff, 0x35, 0x4b, 0x5f, 0xff, 0x39, 0x4b, 0x59, 0xff, 0x3f, 0x47, 0x4d, 0xff, 0x45, 0x43, 0x42, 0xff, 0x4b, 0x40, 0x3a, 0xff, 0x4a, 0x41, 0x3c, 0xff, 0x45, 0x43, 0x44, 0xff, 0x43, 0x45, 0x47, 0xff, 0x44, 0x44, 0x45, 0xff, 0x42, 0x42, 0x69, 0xff, 0x3d, 0x3d, 0xbf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x41, 0x3b, 0x93, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x34, 0x56, 0x71, 0xff, 0x4e, 0x29, 0x09, 0xff, 0x33, 0x55, 0x75, 0xff, 0x17, 0x87, 0xe6, 0xf6, 0x1b, 0x7b, 0xcb, 0x9e, + 0x1b, 0x7b, 0xca, 0x9e, 0x17, 0x87, 0xe5, 0xf6, 0x32, 0x55, 0x75, 0xff, 0x4f, 0x29, 0x0a, 0xff, 0x36, 0x47, 0xa9, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xd6, 0xff, 0x42, 0x42, 0x77, 0xff, 0x44, 0x45, 0x47, 0xff, 0x45, 0x45, 0x47, 0xff, 0x4a, 0x42, 0x3e, 0xff, 0x4b, 0x42, 0x3a, 0xff, 0x40, 0x47, 0x4d, 0xff, 0x31, 0x4e, 0x66, 0xff, 0x27, 0x52, 0x76, 0xff, 0x22, 0x55, 0x7f, 0xff, 0x21, 0x55, 0x81, 0xff, 0x22, 0x56, 0x7f, 0xff, 0x21, 0x55, 0x80, 0xff, 0x22, 0x56, 0x7f, 0xff, 0x21, 0x55, 0x81, 0xff, 0x22, 0x55, 0x7f, 0xff, 0x27, 0x52, 0x76, 0xff, 0x31, 0x4e, 0x66, 0xff, 0x40, 0x47, 0x4d, 0xff, 0x4b, 0x42, 0x3a, 0xff, 0x4a, 0x42, 0x3e, 0xff, 0x45, 0x45, 0x47, 0xff, 0x44, 0x45, 0x47, 0xff, 0x44, 0x44, 0x55, 0xff, 0x3d, 0x3d, 0xb2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x2e, 0x57, 0xc1, 0xff, 0x34, 0x56, 0x72, 0xff, 0x4f, 0x29, 0x0a, 0xff, 0x32, 0x55, 0x75, 0xff, 0x17, 0x86, 0xe5, 0xf6, 0x1b, 0x7b, 0xca, 0x9e, + 0x1b, 0x7b, 0xca, 0x9e, 0x17, 0x86, 0xe5, 0xf6, 0x32, 0x56, 0x75, 0xff, 0x4a, 0x2f, 0x46, 0xff, 0x3a, 0x3b, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xdc, 0xff, 0x41, 0x41, 0x82, 0xff, 0x4c, 0x43, 0x3b, 0xff, 0x45, 0x45, 0x48, 0xff, 0x2f, 0x4f, 0x69, 0xff, 0x21, 0x54, 0x7f, 0xff, 0x21, 0x55, 0x81, 0xff, 0x23, 0x54, 0x7d, 0xff, 0x26, 0x53, 0x78, 0xff, 0x26, 0x52, 0x77, 0xff, 0x27, 0x52, 0x76, 0xff, 0x27, 0x52, 0x75, 0xff, 0x27, 0x52, 0x76, 0xff, 0x26, 0x52, 0x77, 0xff, 0x26, 0x53, 0x78, 0xff, 0x23, 0x54, 0x7d, 0xff, 0x21, 0x55, 0x81, 0xff, 0x21, 0x54, 0x7f, 0xff, 0x2f, 0x4f, 0x69, 0xff, 0x45, 0x45, 0x48, 0xff, 0x4c, 0x43, 0x3b, 0xff, 0x46, 0x45, 0x46, 0xff, 0x44, 0x45, 0x48, 0xff, 0x43, 0x43, 0x51, 0xff, 0x3c, 0x3c, 0xb3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3e, 0xdd, 0xff, 0x35, 0x50, 0x8a, 0xff, 0x4f, 0x29, 0x0a, 0xff, 0x32, 0x56, 0x75, 0xff, 0x17, 0x86, 0xe5, 0xf6, 0x1b, 0x7b, 0xca, 0x9e, + 0x1b, 0x79, 0xca, 0x9e, 0x17, 0x86, 0xe4, 0xf6, 0x33, 0x54, 0x7c, 0xff, 0x3e, 0x37, 0xbc, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x3c, 0xbd, 0xff, 0x3c, 0x3c, 0xc7, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3a, 0xdb, 0xff, 0x3b, 0x44, 0x8f, 0xff, 0x23, 0x54, 0x7e, 0xff, 0x20, 0x55, 0x82, 0xff, 0x26, 0x53, 0x77, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x26, 0x53, 0x77, 0xff, 0x20, 0x55, 0x82, 0xff, 0x23, 0x54, 0x7e, 0xff, 0x3b, 0x4a, 0x58, 0xff, 0x4d, 0x42, 0x39, 0xff, 0x48, 0x43, 0x42, 0xff, 0x43, 0x45, 0x48, 0xff, 0x43, 0x43, 0x57, 0xff, 0x3c, 0x3c, 0xc2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x41, 0xc4, 0xff, 0x4e, 0x29, 0x11, 0xff, 0x32, 0x56, 0x74, 0xff, 0x17, 0x86, 0xe4, 0xf6, 0x1b, 0x79, 0xca, 0x9e, + 0x1b, 0x79, 0xc8, 0x9e, 0x17, 0x86, 0xe2, 0xf6, 0x36, 0x49, 0xa8, 0xff, 0x39, 0x39, 0xde, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x3b, 0xcd, 0xff, 0x43, 0x41, 0x5c, 0xff, 0x42, 0x43, 0x61, 0xff, 0x3b, 0x3b, 0xcc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3b, 0xde, 0xff, 0x2d, 0x49, 0xa3, 0xff, 0x29, 0x51, 0x73, 0xff, 0x29, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x73, 0xff, 0x29, 0x52, 0x73, 0xff, 0x29, 0x52, 0x73, 0xff, 0x29, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x51, 0x73, 0xff, 0x25, 0x53, 0x7b, 0xff, 0x1f, 0x55, 0x83, 0xff, 0x36, 0x4b, 0x5f, 0xff, 0x50, 0x41, 0x36, 0xff, 0x46, 0x44, 0x43, 0xff, 0x42, 0x44, 0x47, 0xff, 0x42, 0x43, 0x6b, 0xff, 0x3b, 0x3b, 0xd8, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xde, 0xff, 0x47, 0x30, 0x60, 0xff, 0x32, 0x56, 0x74, 0xff, 0x17, 0x86, 0xe4, 0xf6, 0x1b, 0x79, 0xca, 0x9e, + 0x1b, 0x79, 0xc8, 0x9e, 0x1b, 0x7d, 0xe3, 0xf7, 0x39, 0x3e, 0xd1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe1, 0xff, 0x43, 0x3b, 0x7e, 0xff, 0x45, 0x42, 0x42, 0xff, 0x43, 0x45, 0x48, 0xff, 0x42, 0x42, 0x67, 0xff, 0x3d, 0x3b, 0xc7, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3b, 0xdd, 0xff, 0x2f, 0x48, 0xa1, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x73, 0xff, 0x29, 0x52, 0x74, 0xff, 0x26, 0x53, 0x79, 0xff, 0x24, 0x54, 0x7d, 0xff, 0x22, 0x54, 0x7d, 0xff, 0x24, 0x54, 0x7d, 0xff, 0x26, 0x53, 0x79, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x73, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x2a, 0x52, 0x73, 0xff, 0x27, 0x53, 0x77, 0xff, 0x1d, 0x57, 0x86, 0xff, 0x37, 0x4c, 0x5e, 0xff, 0x4f, 0x40, 0x36, 0xff, 0x44, 0x44, 0x45, 0xff, 0x43, 0x45, 0x48, 0xff, 0x3f, 0x3e, 0x95, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x40, 0x37, 0xb1, 0xff, 0x33, 0x53, 0x7b, 0xff, 0x17, 0x85, 0xe3, 0xf6, 0x1b, 0x79, 0xc8, 0x9e, + 0x1b, 0x77, 0xc7, 0x9e, 0x27, 0x65, 0xe2, 0xfa, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x45, 0xd4, 0xff, 0x48, 0x3b, 0x39, 0xff, 0x44, 0x42, 0x42, 0xff, 0x43, 0x44, 0x47, 0xff, 0x4c, 0x41, 0x38, 0xff, 0x40, 0x46, 0x6f, 0xff, 0x36, 0x3f, 0xd5, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3b, 0xde, 0xff, 0x2f, 0x49, 0x9e, 0xff, 0x28, 0x52, 0x75, 0xff, 0x24, 0x54, 0x7b, 0xff, 0x21, 0x55, 0x80, 0xff, 0x27, 0x55, 0x7c, 0xff, 0x2c, 0x54, 0x75, 0xff, 0x2e, 0x54, 0x72, 0xff, 0x2b, 0x53, 0x74, 0xff, 0x25, 0x53, 0x7a, 0xff, 0x21, 0x55, 0x80, 0xff, 0x24, 0x54, 0x7b, 0xff, 0x29, 0x53, 0x76, 0xff, 0x2a, 0x54, 0x76, 0xff, 0x2a, 0x54, 0x76, 0xff, 0x2a, 0x54, 0x76, 0xff, 0x2b, 0x53, 0x74, 0xff, 0x28, 0x56, 0x7b, 0xff, 0x20, 0x59, 0x88, 0xff, 0x40, 0x47, 0x51, 0xff, 0x4d, 0x41, 0x39, 0xff, 0x43, 0x45, 0x48, 0xff, 0x43, 0x41, 0x50, 0xff, 0x3c, 0x3a, 0xcc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xde, 0xff, 0x35, 0x4c, 0x98, 0xff, 0x17, 0x84, 0xe2, 0xf6, 0x1b, 0x77, 0xc7, 0x9e, + 0x1f, 0x74, 0xc8, 0xa3, 0x30, 0x50, 0xe2, 0xfc, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3a, 0xe0, 0xff, 0x2e, 0x5b, 0xbd, 0xff, 0x48, 0x3b, 0x33, 0xff, 0x43, 0x42, 0x42, 0xff, 0x48, 0x43, 0x41, 0xff, 0x4d, 0x48, 0x43, 0xff, 0x20, 0x4f, 0x76, 0xff, 0x19, 0x41, 0x8a, 0xff, 0x35, 0x3b, 0xd0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3b, 0xde, 0xff, 0x29, 0x4b, 0xa6, 0xff, 0x28, 0x52, 0x77, 0xff, 0x3d, 0x4e, 0x5e, 0xff, 0x39, 0x3b, 0x3d, 0xff, 0x32, 0x2f, 0x2b, 0xff, 0x36, 0x2f, 0x2a, 0xff, 0x41, 0x3c, 0x3a, 0xff, 0x48, 0x4a, 0x4c, 0xff, 0x38, 0x4a, 0x5a, 0xff, 0x29, 0x54, 0x78, 0xff, 0x19, 0x4d, 0x79, 0xff, 0x12, 0x3f, 0x65, 0xff, 0x14, 0x41, 0x67, 0xff, 0x14, 0x42, 0x68, 0xff, 0x13, 0x41, 0x68, 0xff, 0x16, 0x40, 0x64, 0xff, 0x1e, 0x50, 0x79, 0xff, 0x2b, 0x59, 0x7d, 0xff, 0x47, 0x43, 0x3f, 0xff, 0x46, 0x43, 0x40, 0xff, 0x44, 0x42, 0x42, 0xff, 0x41, 0x3b, 0x84, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x44, 0xb7, 0xff, 0x18, 0x82, 0xe1, 0xf6, 0x1b, 0x77, 0xc7, 0x9e, + 0x25, 0x67, 0xcf, 0xb3, 0x38, 0x3f, 0xe3, 0xfe, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3e, 0xd1, 0xff, 0x28, 0x6a, 0xad, 0xff, 0x48, 0x3b, 0x33, 0xff, 0x45, 0x42, 0x42, 0xff, 0x51, 0x48, 0x42, 0xff, 0x28, 0x3e, 0x51, 0xff, 0x00, 0x2e, 0x62, 0xff, 0x12, 0x3d, 0x62, 0xff, 0x1e, 0x42, 0x84, 0xff, 0x35, 0x3b, 0xd2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xdd, 0xff, 0x44, 0x42, 0x82, 0xff, 0x4d, 0x41, 0x3a, 0xff, 0x33, 0x2b, 0x26, 0xff, 0x39, 0x35, 0x31, 0xff, 0x37, 0x33, 0x30, 0xff, 0x32, 0x2d, 0x2b, 0xff, 0x4c, 0x43, 0x40, 0xff, 0x4f, 0x43, 0x3c, 0xff, 0x48, 0x45, 0x42, 0xff, 0x25, 0x41, 0x58, 0xff, 0x15, 0x44, 0x6e, 0xff, 0x13, 0x42, 0x69, 0xff, 0x13, 0x41, 0x67, 0xff, 0x16, 0x44, 0x69, 0xff, 0x12, 0x3c, 0x64, 0xff, 0x00, 0x2a, 0x53, 0xff, 0x10, 0x48, 0x75, 0xff, 0x3f, 0x52, 0x60, 0xff, 0x4a, 0x42, 0x3d, 0xff, 0x44, 0x42, 0x42, 0xff, 0x46, 0x3b, 0x48, 0xff, 0x38, 0x3d, 0xde, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3e, 0xd7, 0xff, 0x1c, 0x7a, 0xe1, 0xf7, 0x1b, 0x77, 0xc7, 0x9e, + 0x2d, 0x58, 0xd4, 0xc6, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe3, 0xff, 0x39, 0x48, 0xaf, 0xff, 0x26, 0x6d, 0xa9, 0xff, 0x47, 0x3b, 0x33, 0xff, 0x49, 0x44, 0x40, 0xff, 0x34, 0x37, 0x3b, 0xff, 0x12, 0x3d, 0x61, 0xff, 0x8e, 0xa8, 0xbd, 0xff, 0xd2, 0xdb, 0xe1, 0xff, 0xda, 0xe2, 0xe8, 0xff, 0xb8, 0xbd, 0xe6, 0xff, 0x4d, 0x4e, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xdd, 0xff, 0x2e, 0x2f, 0x72, 0xff, 0xa2, 0xa3, 0xa5, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0x8d, 0x8d, 0x8e, 0xff, 0x28, 0x28, 0x2b, 0xff, 0x43, 0x44, 0x46, 0xff, 0x38, 0x31, 0x2c, 0xff, 0x8b, 0x85, 0x82, 0xff, 0xd2, 0xde, 0xe7, 0xff, 0xd0, 0xda, 0xe2, 0xff, 0xd8, 0xdf, 0xe5, 0xff, 0xdc, 0xe2, 0xe8, 0xff, 0xd3, 0xdc, 0xe4, 0xff, 0x9b, 0xad, 0xbd, 0xff, 0x0c, 0x3d, 0x69, 0xff, 0x17, 0x41, 0x65, 0xff, 0x4a, 0x48, 0x49, 0xff, 0x46, 0x42, 0x3f, 0xff, 0x48, 0x3c, 0x34, 0xff, 0x32, 0x4c, 0xcd, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x22, 0x6d, 0xe1, 0xf9, 0x1b, 0x77, 0xc7, 0x9e, + 0x32, 0x4c, 0xd9, 0xd8, 0x39, 0x39, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x37, 0x4e, 0x95, 0xff, 0x26, 0x6d, 0xa9, 0xff, 0x48, 0x3c, 0x34, 0xff, 0x46, 0x3e, 0x38, 0xff, 0x22, 0x34, 0x44, 0xff, 0x94, 0xae, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd5, 0xd5, 0xf9, 0xff, 0x57, 0x57, 0xe5, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xdc, 0xff, 0xad, 0xad, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe9, 0xe8, 0xe9, 0xff, 0x36, 0x36, 0x37, 0xff, 0x33, 0x33, 0x34, 0xff, 0x30, 0x31, 0x34, 0xff, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xfc, 0xfe, 0xff, 0xf6, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa8, 0xba, 0xc9, 0xff, 0x04, 0x3b, 0x67, 0xff, 0x31, 0x40, 0x4d, 0xff, 0x4a, 0x42, 0x3c, 0xff, 0x47, 0x3c, 0x34, 0xff, 0x2e, 0x5a, 0xbf, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x2a, 0x5d, 0xe1, 0xfb, 0x1b, 0x77, 0xc5, 0x9e, + 0x36, 0x46, 0xdd, 0xe7, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x39, 0xd1, 0xff, 0x35, 0x51, 0x85, 0xff, 0x26, 0x6d, 0xa9, 0xff, 0x4a, 0x3e, 0x34, 0xff, 0x3b, 0x35, 0x31, 0xff, 0x3c, 0x53, 0x67, 0xff, 0xe4, 0xef, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x96, 0xa6, 0xb8, 0xff, 0x2c, 0x4b, 0x70, 0xff, 0x37, 0x55, 0x76, 0xff, 0xbd, 0xc8, 0xd3, 0xff, 0xd4, 0xd4, 0xf8, 0xff, 0x51, 0x51, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x41, 0x41, 0xe3, 0xff, 0xa9, 0xa9, 0xeb, 0xff, 0xf4, 0xf4, 0xf4, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5e, 0x5e, 0x5e, 0xff, 0x22, 0x22, 0x23, 0xff, 0x34, 0x34, 0x35, 0xff, 0x9f, 0x9f, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbe, 0xc6, 0xcf, 0xff, 0x26, 0x47, 0x6c, 0xff, 0x1d, 0x40, 0x68, 0xff, 0x7e, 0x92, 0xa8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xf8, 0xf9, 0xff, 0x2b, 0x5a, 0x81, 0xff, 0x18, 0x38, 0x51, 0xff, 0x4b, 0x42, 0x3c, 0xff, 0x48, 0x3c, 0x33, 0xff, 0x2b, 0x61, 0xb7, 0xff, 0x3a, 0x3b, 0xde, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x2f, 0x51, 0xe2, 0xfc, 0x1b, 0x77, 0xc5, 0x9e, + 0x37, 0x40, 0xdf, 0xf0, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3e, 0x36, 0xb5, 0xff, 0x34, 0x54, 0x7b, 0xff, 0x25, 0x6d, 0xaa, 0xff, 0x4d, 0x3e, 0x32, 0xff, 0x37, 0x33, 0x31, 0xff, 0x40, 0x5e, 0x78, 0xff, 0xe8, 0xf2, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0x42, 0x61, 0x81, 0xff, 0x00, 0x19, 0x48, 0xff, 0x00, 0x1a, 0x47, 0xff, 0x7a, 0x91, 0xa8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbc, 0xbb, 0xe0, 0xff, 0x39, 0x39, 0xc8, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3e, 0x3e, 0xdf, 0xff, 0x7f, 0x7f, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x8f, 0x8e, 0xff, 0x1a, 0x1a, 0x1c, 0xff, 0x30, 0x30, 0x32, 0xff, 0xa1, 0xa1, 0xa1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xab, 0xa7, 0xa5, 0xff, 0x00, 0x03, 0x27, 0xff, 0x00, 0x00, 0x36, 0xff, 0x28, 0x46, 0x6b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfd, 0xfe, 0xff, 0x36, 0x62, 0x87, 0xff, 0x10, 0x38, 0x59, 0xff, 0x4a, 0x43, 0x3e, 0xff, 0x48, 0x3b, 0x30, 0xff, 0x28, 0x66, 0xb2, 0xff, 0x39, 0x3e, 0xd0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x32, 0x49, 0xe1, 0xfd, 0x1b, 0x76, 0xc3, 0x9e, + 0x38, 0x3d, 0xe0, 0xf7, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x40, 0x35, 0xa5, 0xff, 0x34, 0x55, 0x76, 0xff, 0x25, 0x6d, 0xaa, 0xff, 0x4d, 0x3d, 0x31, 0xff, 0x36, 0x35, 0x34, 0xff, 0x3a, 0x5e, 0x7c, 0xff, 0xe4, 0xee, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x4e, 0x70, 0x8d, 0xff, 0x03, 0x37, 0x5f, 0xff, 0x1d, 0x53, 0x7a, 0xff, 0x42, 0x5c, 0x72, 0xff, 0x82, 0x7d, 0x79, 0xff, 0x69, 0x69, 0x69, 0xff, 0x31, 0x31, 0x58, 0xff, 0x38, 0x38, 0xca, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x3d, 0xdb, 0xff, 0xb3, 0xb3, 0xf3, 0xff, 0xc6, 0xc6, 0xc6, 0xff, 0x1f, 0x1f, 0x1f, 0xff, 0x25, 0x25, 0x27, 0xff, 0xa3, 0xa3, 0xa3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd3, 0xca, 0xc5, 0xff, 0x55, 0x66, 0x74, 0xff, 0x46, 0x67, 0x8a, 0xff, 0x98, 0xa9, 0xba, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xc7, 0xd1, 0xd9, 0xff, 0x1a, 0x4a, 0x74, 0xff, 0x18, 0x43, 0x66, 0xff, 0x48, 0x43, 0x3f, 0xff, 0x4a, 0x3a, 0x2f, 0xff, 0x27, 0x69, 0xae, 0xff, 0x39, 0x41, 0xca, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x35, 0x45, 0xe1, 0xfe, 0x1b, 0x76, 0xc3, 0x9e, + 0x39, 0x3c, 0xe1, 0xfb, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x42, 0x36, 0x99, 0xff, 0x34, 0x55, 0x74, 0xff, 0x25, 0x6d, 0xaa, 0xff, 0x4e, 0x3d, 0x31, 0xff, 0x36, 0x35, 0x36, 0xff, 0x38, 0x5e, 0x7e, 0xff, 0xe4, 0xee, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0x50, 0x71, 0x8e, 0xff, 0x01, 0x32, 0x5c, 0xff, 0x2c, 0x5f, 0x87, 0xff, 0x2d, 0x40, 0x50, 0xff, 0x26, 0x1c, 0x15, 0xff, 0x2f, 0x30, 0x31, 0xff, 0x31, 0x30, 0x32, 0xff, 0x4c, 0x4c, 0x72, 0xff, 0x53, 0x53, 0xe5, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x42, 0x42, 0xe2, 0xff, 0xaa, 0xaa, 0xed, 0xff, 0x37, 0x37, 0x38, 0xff, 0x18, 0x18, 0x19, 0xff, 0xa3, 0xa3, 0xa4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfe, 0xfe, 0xff, 0x42, 0x63, 0x81, 0xff, 0x00, 0x2b, 0x5b, 0xff, 0x2d, 0x56, 0x78, 0xff, 0x46, 0x42, 0x3f, 0xff, 0x4a, 0x3b, 0x2e, 0xff, 0x26, 0x6a, 0xad, 0xff, 0x39, 0x42, 0xc3, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x41, 0xe2, 0xfe, 0x1b, 0x76, 0xc3, 0x9e, + 0x39, 0x3c, 0xe1, 0xfa, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x42, 0x36, 0x99, 0xff, 0x34, 0x55, 0x74, 0xff, 0x25, 0x6d, 0xaa, 0xff, 0x4e, 0x3d, 0x31, 0xff, 0x36, 0x35, 0x35, 0xff, 0x38, 0x5e, 0x7e, 0xff, 0xe4, 0xee, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0x4f, 0x72, 0x8f, 0xff, 0x01, 0x33, 0x5c, 0xff, 0x2c, 0x5e, 0x88, 0xff, 0x29, 0x3d, 0x4f, 0xff, 0x28, 0x1e, 0x18, 0xff, 0x2c, 0x2c, 0x2d, 0xff, 0x2b, 0x2b, 0x2d, 0xff, 0x84, 0x84, 0x85, 0xff, 0xd6, 0xd6, 0xf9, 0xff, 0x4f, 0x4f, 0xde, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x40, 0x40, 0xe3, 0xff, 0x55, 0x55, 0x99, 0xff, 0x09, 0x09, 0x0b, 0xff, 0xa1, 0xa1, 0xa1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe8, 0xe5, 0xe2, 0xff, 0xaa, 0xb2, 0xb7, 0xff, 0x98, 0xb1, 0xc4, 0xff, 0xc7, 0xd3, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb6, 0xc4, 0xce, 0xff, 0x1b, 0x4b, 0x74, 0xff, 0x19, 0x45, 0x6a, 0xff, 0x47, 0x43, 0x40, 0xff, 0x4a, 0x3a, 0x2e, 0xff, 0x26, 0x6a, 0xad, 0xff, 0x39, 0x42, 0xc3, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x41, 0xe2, 0xfe, 0x1b, 0x76, 0xc3, 0x9e, + 0x38, 0x3e, 0xe0, 0xf6, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x41, 0x37, 0xa6, 0xff, 0x34, 0x55, 0x76, 0xff, 0x25, 0x6d, 0xaa, 0xff, 0x4d, 0x3d, 0x31, 0xff, 0x36, 0x34, 0x32, 0xff, 0x3c, 0x5e, 0x7d, 0xff, 0xe6, 0xf0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x48, 0x69, 0x87, 0xff, 0x05, 0x33, 0x5c, 0xff, 0x13, 0x42, 0x6b, 0xff, 0x53, 0x6d, 0x84, 0xff, 0xc9, 0xc1, 0xbd, 0xff, 0x90, 0x8f, 0x90, 0xff, 0x20, 0x21, 0x22, 0xff, 0xa1, 0xa1, 0xa1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbb, 0xbb, 0xdf, 0xff, 0x48, 0x48, 0xd8, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x3d, 0xdf, 0xff, 0x1b, 0x1b, 0x5f, 0xff, 0x9a, 0x9a, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb4, 0xa9, 0x9f, 0xff, 0x00, 0x0a, 0x21, 0xff, 0x00, 0x11, 0x4a, 0xff, 0x1f, 0x3c, 0x63, 0xff, 0xeb, 0xf0, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0x53, 0x79, 0x99, 0xff, 0x09, 0x36, 0x5d, 0xff, 0x48, 0x43, 0x3f, 0xff, 0x4a, 0x3b, 0x2f, 0xff, 0x27, 0x69, 0xae, 0xff, 0x39, 0x40, 0xcb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x35, 0x45, 0xe1, 0xfe, 0x1b, 0x74, 0xc2, 0x9e, + 0x37, 0x40, 0xdf, 0xef, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3e, 0x37, 0xb6, 0xff, 0x35, 0x54, 0x7c, 0xff, 0x25, 0x6d, 0xaa, 0xff, 0x4d, 0x3e, 0x33, 0xff, 0x37, 0x32, 0x2f, 0xff, 0x42, 0x60, 0x78, 0xff, 0xec, 0xf5, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x46, 0x61, 0x80, 0xff, 0x00, 0x06, 0x38, 0xff, 0x00, 0x08, 0x39, 0xff, 0x84, 0x98, 0xae, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xdf, 0xdf, 0xff, 0x32, 0x32, 0x33, 0xff, 0xbc, 0xbc, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd2, 0xd2, 0xf8, 0xff, 0x56, 0x56, 0xe6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xda, 0xff, 0x6f, 0x6f, 0xb1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xac, 0xa9, 0xaa, 0xff, 0x00, 0x05, 0x2c, 0xff, 0x00, 0x07, 0x3e, 0xff, 0x06, 0x29, 0x53, 0xff, 0xe5, 0xea, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0x57, 0x7c, 0x9b, 0xff, 0x0f, 0x37, 0x58, 0xff, 0x49, 0x42, 0x3c, 0xff, 0x49, 0x3b, 0x31, 0xff, 0x28, 0x66, 0xb2, 0xff, 0x39, 0x3e, 0xd1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x32, 0x49, 0xe1, 0xfd, 0x1b, 0x74, 0xc2, 0x9e, + 0x35, 0x44, 0xdd, 0xe6, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x39, 0xd4, 0xff, 0x35, 0x51, 0x86, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x49, 0x3d, 0x34, 0xff, 0x3e, 0x37, 0x33, 0xff, 0x35, 0x4c, 0x60, 0xff, 0xd5, 0xe4, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xcb, 0xd6, 0xff, 0x5c, 0x7a, 0x95, 0xff, 0x6c, 0x87, 0x9e, 0xff, 0xda, 0xe1, 0xe6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xba, 0xb7, 0xb6, 0xff, 0x3e, 0x3f, 0x41, 0xff, 0xf2, 0xf3, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x76, 0x76, 0x77, 0xff, 0x51, 0x51, 0x53, 0xff, 0x4d, 0x4d, 0x73, 0xff, 0x45, 0x45, 0xd6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3e, 0x3e, 0xdd, 0xff, 0xb3, 0xb3, 0xf3, 0xff, 0xd0, 0xd6, 0xdd, 0xff, 0x5e, 0x74, 0x91, 0xff, 0x52, 0x6e, 0x8b, 0xff, 0x93, 0xa8, 0xb8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x39, 0x65, 0x8a, 0xff, 0x17, 0x35, 0x4d, 0xff, 0x4b, 0x42, 0x3c, 0xff, 0x47, 0x3b, 0x33, 0xff, 0x2b, 0x61, 0xb7, 0xff, 0x3a, 0x3b, 0xde, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x30, 0x50, 0xe0, 0xfc, 0x1b, 0x74, 0xc2, 0x9e, + 0x32, 0x4c, 0xd8, 0xd8, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x36, 0x4d, 0x95, 0xff, 0x26, 0x6d, 0xa9, 0xff, 0x47, 0x3c, 0x34, 0xff, 0x49, 0x41, 0x3c, 0xff, 0x1f, 0x2d, 0x3d, 0xff, 0x69, 0x89, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xf9, 0xfc, 0xff, 0x44, 0x44, 0x45, 0xff, 0x77, 0x71, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe8, 0xe8, 0xe8, 0xff, 0x12, 0x12, 0x13, 0xff, 0x0f, 0x0f, 0x11, 0xff, 0x0d, 0x0d, 0x0d, 0xff, 0x2c, 0x2c, 0x51, 0xff, 0x53, 0x53, 0xe4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x44, 0x44, 0xe3, 0xff, 0xb3, 0xb3, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x99, 0xae, 0xbf, 0xff, 0x05, 0x39, 0x65, 0xff, 0x34, 0x40, 0x4b, 0xff, 0x4a, 0x42, 0x3d, 0xff, 0x47, 0x3c, 0x34, 0xff, 0x2f, 0x5a, 0xc1, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x29, 0x5c, 0xde, 0xfb, 0x1b, 0x74, 0xc0, 0x9e, + 0x2c, 0x57, 0xd1, 0xc4, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x37, 0x46, 0xb2, 0xff, 0x26, 0x6d, 0xa9, 0xff, 0x48, 0x3b, 0x33, 0xff, 0x48, 0x43, 0x41, 0xff, 0x3d, 0x3c, 0x3e, 0xff, 0x0d, 0x35, 0x59, 0xff, 0x59, 0x7e, 0x9d, 0xff, 0x98, 0xac, 0xbb, 0xff, 0x98, 0xac, 0xbd, 0xff, 0x98, 0xab, 0xbe, 0xff, 0x91, 0xa8, 0xb9, 0xff, 0x42, 0x6c, 0x8e, 0xff, 0x00, 0x20, 0x3f, 0xff, 0x86, 0x7e, 0x7b, 0xff, 0xbc, 0xb2, 0xaa, 0xff, 0x7c, 0x7b, 0x7a, 0xff, 0x33, 0x35, 0x36, 0xff, 0x48, 0x4a, 0x4c, 0xff, 0x47, 0x47, 0x49, 0xff, 0x35, 0x36, 0x38, 0xff, 0x73, 0x74, 0x96, 0xff, 0x4d, 0x4d, 0xdb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3e, 0x3f, 0xe0, 0xff, 0x71, 0x7d, 0xca, 0xff, 0x99, 0xac, 0xbd, 0xff, 0x9c, 0xb0, 0xc0, 0xff, 0x6e, 0x89, 0x9f, 0xff, 0x08, 0x3d, 0x68, 0xff, 0x1c, 0x43, 0x63, 0xff, 0x4c, 0x49, 0x46, 0xff, 0x46, 0x42, 0x3f, 0xff, 0x48, 0x3b, 0x34, 0xff, 0x34, 0x4e, 0xcd, 0xff, 0x39, 0x39, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x22, 0x6b, 0xdd, 0xf9, 0x1b, 0x74, 0xc0, 0x9e, + 0x25, 0x64, 0xca, 0xb2, 0x37, 0x3f, 0xe2, 0xfe, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3d, 0xd4, 0xff, 0x28, 0x69, 0xad, 0xff, 0x48, 0x3b, 0x33, 0xff, 0x44, 0x42, 0x42, 0xff, 0x4d, 0x46, 0x40, 0xff, 0x34, 0x45, 0x53, 0xff, 0x02, 0x3d, 0x6c, 0xff, 0x07, 0x38, 0x60, 0xff, 0x0a, 0x38, 0x62, 0xff, 0x09, 0x39, 0x61, 0xff, 0x07, 0x37, 0x5e, 0xff, 0x0c, 0x3b, 0x62, 0xff, 0x26, 0x59, 0x83, 0xff, 0x23, 0x46, 0x66, 0xff, 0x22, 0x26, 0x2b, 0xff, 0x35, 0x2c, 0x26, 0xff, 0x4f, 0x47, 0x41, 0xff, 0x4b, 0x45, 0x42, 0xff, 0x4c, 0x46, 0x43, 0xff, 0x4b, 0x46, 0x42, 0xff, 0x33, 0x2b, 0x25, 0xff, 0x30, 0x28, 0x48, 0xff, 0x3a, 0x3b, 0xcb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3a, 0xdd, 0xff, 0x1c, 0x39, 0x94, 0xff, 0x08, 0x38, 0x60, 0xff, 0x07, 0x38, 0x5e, 0xff, 0x15, 0x4c, 0x79, 0xff, 0x3e, 0x4e, 0x5b, 0xff, 0x4a, 0x43, 0x3e, 0xff, 0x44, 0x42, 0x42, 0xff, 0x46, 0x3b, 0x4b, 0xff, 0x39, 0x3d, 0xdd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3d, 0xd5, 0xff, 0x1b, 0x76, 0xda, 0xf7, 0x1b, 0x74, 0xc0, 0x9e, + 0x1e, 0x71, 0xc2, 0xa3, 0x2f, 0x4f, 0xdf, 0xfc, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x2e, 0x58, 0xbf, 0xff, 0x48, 0x3b, 0x33, 0xff, 0x44, 0x42, 0x42, 0xff, 0x46, 0x43, 0x42, 0xff, 0x4b, 0x43, 0x3d, 0xff, 0x2d, 0x54, 0x73, 0xff, 0x20, 0x55, 0x81, 0xff, 0x28, 0x4f, 0x71, 0xff, 0x27, 0x51, 0x74, 0xff, 0x27, 0x52, 0x74, 0xff, 0x2c, 0x55, 0x76, 0xff, 0x29, 0x53, 0x75, 0xff, 0x21, 0x52, 0x7a, 0xff, 0x24, 0x51, 0x7a, 0xff, 0x31, 0x4e, 0x67, 0xff, 0x3d, 0x49, 0x53, 0xff, 0x43, 0x46, 0x49, 0xff, 0x45, 0x46, 0x48, 0xff, 0x43, 0x47, 0x4b, 0xff, 0x3c, 0x48, 0x53, 0xff, 0x30, 0x4d, 0x65, 0xff, 0x29, 0x4e, 0x91, 0xff, 0x37, 0x3e, 0xd4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3b, 0xdf, 0xff, 0x2f, 0x47, 0x9e, 0xff, 0x22, 0x57, 0x84, 0xff, 0x2c, 0x54, 0x74, 0xff, 0x49, 0x41, 0x3c, 0xff, 0x46, 0x44, 0x42, 0xff, 0x44, 0x42, 0x42, 0xff, 0x42, 0x3b, 0x84, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x44, 0xb6, 0xff, 0x17, 0x7d, 0xd8, 0xf6, 0x1b, 0x74, 0xbe, 0x9e, + 0x1b, 0x73, 0xbe, 0x9e, 0x25, 0x62, 0xdd, 0xfa, 0x3a, 0x3a, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x43, 0xd7, 0xff, 0x47, 0x3b, 0x3b, 0xff, 0x44, 0x42, 0x42, 0xff, 0x43, 0x45, 0x48, 0xff, 0x4b, 0x40, 0x38, 0xff, 0x45, 0x46, 0x47, 0xff, 0x22, 0x57, 0x85, 0xff, 0x24, 0x56, 0x7f, 0xff, 0x2b, 0x52, 0x72, 0xff, 0x29, 0x53, 0x76, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x28, 0x55, 0x7a, 0xff, 0x23, 0x56, 0x80, 0xff, 0x23, 0x54, 0x7d, 0xff, 0x26, 0x53, 0x79, 0xff, 0x26, 0x53, 0x78, 0xff, 0x25, 0x53, 0x79, 0xff, 0x24, 0x55, 0x7e, 0xff, 0x23, 0x57, 0x81, 0xff, 0x26, 0x54, 0x79, 0xff, 0x2d, 0x4c, 0x8d, 0xff, 0x38, 0x3d, 0xd4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3b, 0xdd, 0xff, 0x2b, 0x4c, 0xa8, 0xff, 0x45, 0x45, 0x47, 0xff, 0x4b, 0x41, 0x38, 0xff, 0x43, 0x45, 0x48, 0xff, 0x43, 0x41, 0x50, 0xff, 0x3c, 0x3a, 0xc9, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3a, 0xdc, 0xff, 0x35, 0x4c, 0x95, 0xff, 0x15, 0x7e, 0xda, 0xf6, 0x1b, 0x73, 0xbe, 0x9e, + 0x1b, 0x73, 0xbe, 0x9e, 0x18, 0x77, 0xd9, 0xf7, 0x39, 0x3e, 0xcf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe1, 0xff, 0x42, 0x3b, 0x81, 0xff, 0x45, 0x42, 0x42, 0xff, 0x43, 0x45, 0x48, 0xff, 0x43, 0x45, 0x47, 0xff, 0x4f, 0x41, 0x36, 0xff, 0x3f, 0x48, 0x52, 0xff, 0x1e, 0x56, 0x86, 0xff, 0x24, 0x54, 0x7a, 0xff, 0x2b, 0x52, 0x72, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x74, 0xff, 0x27, 0x53, 0x76, 0xff, 0x26, 0x53, 0x79, 0xff, 0x25, 0x53, 0x7a, 0xff, 0x26, 0x53, 0x79, 0xff, 0x27, 0x53, 0x76, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x2c, 0x4d, 0x8d, 0xff, 0x38, 0x3d, 0xd3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xdb, 0xff, 0x47, 0x3e, 0x78, 0xff, 0x43, 0x45, 0x47, 0xff, 0x43, 0x45, 0x48, 0xff, 0x40, 0x3e, 0x99, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3f, 0x36, 0xae, 0xff, 0x33, 0x52, 0x77, 0xff, 0x14, 0x7e, 0xd8, 0xf6, 0x1a, 0x73, 0xbe, 0x9e, + 0x1a, 0x73, 0xbe, 0x9e, 0x14, 0x7e, 0xd6, 0xf6, 0x36, 0x48, 0xa4, 0xff, 0x3a, 0x3a, 0xde, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3a, 0xd2, 0xff, 0x43, 0x41, 0x60, 0xff, 0x43, 0x45, 0x47, 0xff, 0x43, 0x45, 0x47, 0xff, 0x44, 0x44, 0x47, 0xff, 0x4f, 0x40, 0x35, 0xff, 0x3e, 0x49, 0x52, 0xff, 0x20, 0x55, 0x82, 0xff, 0x21, 0x55, 0x80, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x73, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x73, 0xff, 0x2c, 0x4d, 0x8c, 0xff, 0x36, 0x3e, 0xd3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xdb, 0xff, 0x40, 0x42, 0x7a, 0xff, 0x42, 0x43, 0x6c, 0xff, 0x3b, 0x3b, 0xd7, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3a, 0xdd, 0xff, 0x48, 0x31, 0x5b, 0xff, 0x32, 0x53, 0x70, 0xff, 0x14, 0x7e, 0xd6, 0xf6, 0x1a, 0x73, 0xbe, 0x9e, + 0x1a, 0x73, 0xbe, 0x9e, 0x14, 0x7d, 0xd6, 0xf6, 0x32, 0x52, 0x76, 0xff, 0x3d, 0x36, 0xb6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x3c, 0xbb, 0xff, 0x42, 0x44, 0x54, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x45, 0x47, 0xff, 0x45, 0x45, 0x45, 0xff, 0x4e, 0x41, 0x37, 0xff, 0x42, 0x47, 0x4c, 0xff, 0x25, 0x53, 0x79, 0xff, 0x1e, 0x57, 0x86, 0xff, 0x24, 0x54, 0x7c, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x73, 0xff, 0x29, 0x52, 0x73, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x74, 0xff, 0x29, 0x52, 0x73, 0xff, 0x29, 0x52, 0x73, 0xff, 0x29, 0x52, 0x74, 0xff, 0x24, 0x54, 0x7c, 0xff, 0x1e, 0x57, 0x86, 0xff, 0x29, 0x4e, 0x8f, 0xff, 0x3b, 0x3c, 0xcc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xda, 0xff, 0x3b, 0x3b, 0xd4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x39, 0x43, 0xc3, 0xff, 0x4f, 0x2b, 0x11, 0xff, 0x32, 0x53, 0x70, 0xff, 0x14, 0x7d, 0xd6, 0xf6, 0x1a, 0x73, 0xbe, 0x9e, + 0x1a, 0x73, 0xbb, 0x9e, 0x14, 0x7d, 0xd6, 0xf6, 0x32, 0x53, 0x71, 0xff, 0x4a, 0x2e, 0x42, 0xff, 0x3a, 0x3b, 0xdd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3d, 0xae, 0xff, 0x43, 0x43, 0x4e, 0xff, 0x45, 0x45, 0x45, 0xff, 0x44, 0x45, 0x48, 0xff, 0x44, 0x45, 0x47, 0xff, 0x4c, 0x42, 0x3b, 0xff, 0x4a, 0x42, 0x3e, 0xff, 0x34, 0x4c, 0x61, 0xff, 0x22, 0x55, 0x7e, 0xff, 0x20, 0x55, 0x82, 0xff, 0x23, 0x55, 0x7d, 0xff, 0x26, 0x53, 0x78, 0xff, 0x27, 0x52, 0x76, 0xff, 0x27, 0x52, 0x76, 0xff, 0x28, 0x52, 0x76, 0xff, 0x27, 0x52, 0x76, 0xff, 0x27, 0x52, 0x76, 0xff, 0x26, 0x53, 0x78, 0xff, 0x23, 0x55, 0x7d, 0xff, 0x20, 0x55, 0x82, 0xff, 0x22, 0x55, 0x7e, 0xff, 0x34, 0x4c, 0x61, 0xff, 0x4a, 0x42, 0x3e, 0xff, 0x48, 0x40, 0x60, 0xff, 0x3b, 0x3c, 0xcb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x40, 0xdd, 0xff, 0x36, 0x51, 0x88, 0xff, 0x4f, 0x2a, 0x0d, 0xff, 0x32, 0x53, 0x71, 0xff, 0x14, 0x7d, 0xd6, 0xf6, 0x1a, 0x73, 0xbb, 0x9e, + 0x1a, 0x73, 0xbb, 0x9e, 0x14, 0x7d, 0xd5, 0xf6, 0x32, 0x53, 0x70, 0xff, 0x4f, 0x2a, 0x0d, 0xff, 0x36, 0x48, 0xa6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x3d, 0xaf, 0xff, 0x44, 0x44, 0x54, 0xff, 0x45, 0x45, 0x46, 0xff, 0x45, 0x45, 0x46, 0xff, 0x44, 0x45, 0x49, 0xff, 0x4a, 0x43, 0x41, 0xff, 0x4d, 0x40, 0x37, 0xff, 0x45, 0x44, 0x46, 0xff, 0x35, 0x4b, 0x5f, 0xff, 0x2b, 0x50, 0x6f, 0xff, 0x26, 0x52, 0x78, 0xff, 0x25, 0x54, 0x7b, 0xff, 0x23, 0x54, 0x7c, 0xff, 0x24, 0x54, 0x7c, 0xff, 0x23, 0x54, 0x7c, 0xff, 0x25, 0x54, 0x7b, 0xff, 0x26, 0x52, 0x78, 0xff, 0x2b, 0x50, 0x6f, 0xff, 0x35, 0x4b, 0x5f, 0xff, 0x45, 0x44, 0x46, 0xff, 0x4d, 0x40, 0x37, 0xff, 0x4a, 0x43, 0x41, 0xff, 0x44, 0x45, 0x49, 0xff, 0x44, 0x44, 0x5c, 0xff, 0x3c, 0x3c, 0xc9, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe0, 0xff, 0x2d, 0x59, 0xc0, 0xff, 0x34, 0x56, 0x72, 0xff, 0x4f, 0x2a, 0x0d, 0xff, 0x32, 0x53, 0x70, 0xff, 0x14, 0x7d, 0xd6, 0xf6, 0x1a, 0x73, 0xba, 0x9e, + 0x1a, 0x73, 0xba, 0x9e, 0x14, 0x7d, 0xd6, 0xf6, 0x32, 0x53, 0x70, 0xff, 0x4f, 0x2a, 0x0e, 0xff, 0x34, 0x55, 0x75, 0xff, 0x33, 0x4f, 0xcb, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x3d, 0xbb, 0xff, 0x43, 0x43, 0x69, 0xff, 0x45, 0x45, 0x46, 0xff, 0x45, 0x45, 0x46, 0xff, 0x44, 0x46, 0x49, 0xff, 0x46, 0x44, 0x46, 0xff, 0x4b, 0x43, 0x3d, 0xff, 0x4c, 0x42, 0x3a, 0xff, 0x48, 0x44, 0x41, 0xff, 0x43, 0x45, 0x49, 0xff, 0x3e, 0x48, 0x52, 0xff, 0x3a, 0x49, 0x58, 0xff, 0x3b, 0x4a, 0x59, 0xff, 0x3a, 0x49, 0x58, 0xff, 0x3e, 0x48, 0x52, 0xff, 0x43, 0x45, 0x49, 0xff, 0x48, 0x44, 0x41, 0xff, 0x4c, 0x42, 0x3a, 0xff, 0x4b, 0x43, 0x3d, 0xff, 0x46, 0x44, 0x46, 0xff, 0x44, 0x46, 0x49, 0xff, 0x45, 0x45, 0x46, 0xff, 0x43, 0x43, 0x68, 0xff, 0x3d, 0x3d, 0xc5, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x41, 0x3b, 0x8d, 0xff, 0x26, 0x6d, 0xaa, 0xff, 0x34, 0x56, 0x73, 0xff, 0x4f, 0x2a, 0x0e, 0xff, 0x32, 0x53, 0x70, 0xff, 0x14, 0x7d, 0xd6, 0xf6, 0x1a, 0x73, 0xba, 0x9e, + 0x1a, 0x73, 0xba, 0x9e, 0x14, 0x7d, 0xd5, 0xf6, 0x31, 0x53, 0x70, 0xff, 0x4f, 0x2b, 0x0d, 0xff, 0x33, 0x56, 0x74, 0xff, 0x26, 0x6c, 0xac, 0xff, 0x3f, 0x3a, 0x9f, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xd4, 0xff, 0x3f, 0x3f, 0x91, 0xff, 0x44, 0x44, 0x51, 0xff, 0x45, 0x45, 0x46, 0xff, 0x45, 0x45, 0x47, 0xff, 0x45, 0x45, 0x47, 0xff, 0x46, 0x45, 0x45, 0xff, 0x48, 0x44, 0x42, 0xff, 0x4a, 0x43, 0x3f, 0xff, 0x49, 0x43, 0x3f, 0xff, 0x49, 0x43, 0x3f, 0xff, 0x4a, 0x43, 0x3f, 0xff, 0x49, 0x43, 0x3f, 0xff, 0x49, 0x43, 0x3f, 0xff, 0x4a, 0x43, 0x3f, 0xff, 0x48, 0x44, 0x42, 0xff, 0x46, 0x45, 0x45, 0xff, 0x45, 0x45, 0x47, 0xff, 0x45, 0x45, 0x47, 0xff, 0x44, 0x44, 0x58, 0xff, 0x3f, 0x3f, 0x99, 0xff, 0x3b, 0x3b, 0xd6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3e, 0x3d, 0x97, 0xff, 0x48, 0x3d, 0x37, 0xff, 0x25, 0x6e, 0xab, 0xff, 0x33, 0x56, 0x74, 0xff, 0x4f, 0x2b, 0x0d, 0xff, 0x31, 0x53, 0x71, 0xff, 0x14, 0x7d, 0xd5, 0xf6, 0x1a, 0x73, 0xbb, 0x9e, + 0x1a, 0x73, 0xbb, 0x9e, 0x13, 0x80, 0xd9, 0xf6, 0x36, 0x4a, 0x5c, 0xff, 0x5a, 0x18, 0x00, 0xff, 0x39, 0x4c, 0x5a, 0xff, 0x28, 0x69, 0x9e, 0xff, 0x4a, 0x37, 0x2d, 0xff, 0x3d, 0x3f, 0x9f, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3d, 0x3d, 0xc5, 0xff, 0x40, 0x41, 0x88, 0xff, 0x43, 0x45, 0x5b, 0xff, 0x44, 0x46, 0x49, 0xff, 0x44, 0x46, 0x48, 0xff, 0x44, 0x46, 0x48, 0xff, 0x44, 0x46, 0x49, 0xff, 0x44, 0x46, 0x48, 0xff, 0x44, 0x46, 0x48, 0xff, 0x44, 0x46, 0x48, 0xff, 0x44, 0x46, 0x48, 0xff, 0x44, 0x46, 0x48, 0xff, 0x44, 0x46, 0x49, 0xff, 0x44, 0x46, 0x48, 0xff, 0x44, 0x46, 0x4a, 0xff, 0x43, 0x44, 0x5e, 0xff, 0x3f, 0x40, 0x91, 0xff, 0x3b, 0x3c, 0xcd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xdf, 0xff, 0x3e, 0x40, 0x98, 0xff, 0x42, 0x44, 0x4b, 0xff, 0x4b, 0x37, 0x27, 0xff, 0x28, 0x69, 0x9e, 0xff, 0x39, 0x4c, 0x5a, 0xff, 0x5a, 0x18, 0x00, 0xff, 0x36, 0x4a, 0x5c, 0xff, 0x13, 0x80, 0xda, 0xf6, 0x1a, 0x73, 0xbb, 0x9e, + 0x1a, 0x6f, 0xb8, 0x9e, 0x18, 0x75, 0xc5, 0xf6, 0x28, 0x64, 0x98, 0xff, 0x36, 0x53, 0x6f, 0xff, 0x25, 0x6f, 0xac, 0xff, 0x23, 0x71, 0xb3, 0xff, 0x4c, 0x33, 0x20, 0xff, 0x49, 0x39, 0x2d, 0xff, 0x41, 0x3d, 0x85, 0xff, 0x3b, 0x3a, 0xd9, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe1, 0xff, 0x3b, 0x3a, 0xd2, 0xff, 0x41, 0x3d, 0x9d, 0xff, 0x44, 0x3d, 0x75, 0xff, 0x45, 0x3d, 0x5d, 0xff, 0x46, 0x3d, 0x4d, 0xff, 0x47, 0x3e, 0x43, 0xff, 0x47, 0x3e, 0x41, 0xff, 0x47, 0x3e, 0x41, 0xff, 0x47, 0x3e, 0x43, 0xff, 0x46, 0x3d, 0x4f, 0xff, 0x45, 0x3d, 0x5f, 0xff, 0x43, 0x3c, 0x78, 0xff, 0x3f, 0x3b, 0xa3, 0xff, 0x3b, 0x3a, 0xd7, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3a, 0xd3, 0xff, 0x42, 0x3c, 0x78, 0xff, 0x46, 0x40, 0x3b, 0xff, 0x4a, 0x39, 0x2c, 0xff, 0x4c, 0x34, 0x21, 0xff, 0x24, 0x71, 0xb2, 0xff, 0x25, 0x6f, 0xab, 0xff, 0x36, 0x53, 0x6f, 0xff, 0x28, 0x64, 0x98, 0xff, 0x18, 0x75, 0xc5, 0xf6, 0x1a, 0x6f, 0xb8, 0x9e, + 0x1b, 0x6f, 0xb6, 0x9e, 0x1e, 0x6b, 0xad, 0xf6, 0x16, 0x84, 0xdf, 0xff, 0x0f, 0x97, 0xf8, 0xff, 0x14, 0x8d, 0xf2, 0xff, 0x11, 0x8e, 0xf7, 0xff, 0x28, 0x69, 0xa0, 0xff, 0x4b, 0x38, 0x28, 0xff, 0x45, 0x40, 0x3d, 0xff, 0x41, 0x42, 0x6e, 0xff, 0x3d, 0x3d, 0xb5, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3a, 0xd9, 0xff, 0x3b, 0x3b, 0xc7, 0xff, 0x3d, 0x3d, 0xbc, 0xff, 0x3e, 0x3d, 0xb5, 0xff, 0x3e, 0x3d, 0xb5, 0xff, 0x3d, 0x3d, 0xbd, 0xff, 0x3c, 0x3b, 0xc8, 0xff, 0x3a, 0x3a, 0xdc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3e, 0x3d, 0xaf, 0xff, 0x42, 0x41, 0x66, 0xff, 0x43, 0x44, 0x44, 0xff, 0x45, 0x40, 0x3d, 0xff, 0x4a, 0x38, 0x28, 0xff, 0x28, 0x69, 0xa0, 0xff, 0x12, 0x8e, 0xf7, 0xff, 0x13, 0x8d, 0xf2, 0xff, 0x10, 0x97, 0xf8, 0xff, 0x16, 0x84, 0xdf, 0xff, 0x1e, 0x6a, 0xad, 0xf6, 0x1b, 0x6f, 0xb5, 0x9e, + 0x1a, 0x70, 0xbc, 0x9f, 0x17, 0x79, 0xcd, 0xf6, 0x30, 0x54, 0x74, 0xff, 0x40, 0x3f, 0x41, 0xff, 0x40, 0x40, 0x41, 0xff, 0x2a, 0x68, 0xa0, 0xff, 0x11, 0x8e, 0xf8, 0xff, 0x21, 0x74, 0xb7, 0xff, 0x23, 0x6f, 0xb0, 0xff, 0x21, 0x74, 0xb7, 0xff, 0x24, 0x6f, 0xb8, 0xff, 0x2c, 0x5a, 0xc9, 0xff, 0x34, 0x47, 0xd8, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe1, 0xff, 0x34, 0x49, 0xd7, 0xff, 0x2b, 0x5d, 0xc8, 0xff, 0x23, 0x70, 0xb7, 0xff, 0x22, 0x73, 0xb6, 0xff, 0x21, 0x74, 0xb7, 0xff, 0x24, 0x6f, 0xb0, 0xff, 0x21, 0x74, 0xb8, 0xff, 0x11, 0x8e, 0xf8, 0xff, 0x2a, 0x68, 0x9f, 0xff, 0x40, 0x40, 0x41, 0xff, 0x40, 0x3e, 0x41, 0xff, 0x30, 0x54, 0x73, 0xff, 0x17, 0x7a, 0xcd, 0xf6, 0x1a, 0x70, 0xba, 0x9f, + 0x1b, 0x6f, 0xb6, 0xb1, 0x12, 0x80, 0xdd, 0xff, 0x34, 0x4c, 0x5e, 0xf8, 0x53, 0x1f, 0x00, 0xf9, 0x50, 0x25, 0x04, 0xff, 0x39, 0x4f, 0x64, 0xff, 0x0f, 0x91, 0xfd, 0xff, 0x33, 0x58, 0x77, 0xff, 0x44, 0x3e, 0x39, 0xff, 0x3d, 0x4a, 0x54, 0xff, 0x3e, 0x4b, 0x54, 0xff, 0x3e, 0x4a, 0x55, 0xff, 0x3e, 0x49, 0x63, 0xff, 0x3d, 0x45, 0x89, 0xff, 0x3c, 0x40, 0xaf, 0xff, 0x3a, 0x3c, 0xd4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3d, 0xd1, 0xff, 0x3c, 0x40, 0xac, 0xff, 0x3d, 0x45, 0x84, 0xff, 0x3e, 0x49, 0x60, 0xff, 0x3e, 0x4a, 0x56, 0xff, 0x3e, 0x4a, 0x55, 0xff, 0x3d, 0x4a, 0x54, 0xff, 0x3d, 0x4a, 0x54, 0xff, 0x44, 0x3e, 0x3a, 0xff, 0x33, 0x58, 0x76, 0xff, 0x0f, 0x91, 0xfd, 0xff, 0x39, 0x4f, 0x64, 0xff, 0x4f, 0x25, 0x04, 0xff, 0x54, 0x1e, 0x00, 0xf8, 0x34, 0x4c, 0x60, 0xf8, 0x11, 0x80, 0xdd, 0xff, 0x1b, 0x6f, 0xb6, 0xb1, + 0x1b, 0x6b, 0xb2, 0x85, 0x15, 0x77, 0xc7, 0xfb, 0x1b, 0x74, 0xbe, 0xfb, 0x3d, 0x3f, 0x40, 0xf0, 0x55, 0x20, 0x00, 0xf9, 0x36, 0x53, 0x6a, 0xff, 0x0c, 0x97, 0xff, 0xff, 0x44, 0x40, 0x41, 0xff, 0x59, 0x1f, 0x00, 0xff, 0x4f, 0x30, 0x17, 0xff, 0x4f, 0x30, 0x17, 0xff, 0x4f, 0x30, 0x17, 0xff, 0x4f, 0x30, 0x17, 0xff, 0x4f, 0x30, 0x17, 0xff, 0x4e, 0x30, 0x1e, 0xff, 0x4b, 0x32, 0x3a, 0xff, 0x48, 0x34, 0x5e, 0xff, 0x44, 0x36, 0x87, 0xff, 0x41, 0x38, 0xa6, 0xff, 0x3e, 0x38, 0xb9, 0xff, 0x3d, 0x39, 0xc9, 0xff, 0x3c, 0x39, 0xd0, 0xff, 0x3c, 0x39, 0xcf, 0xff, 0x3d, 0x39, 0xc5, 0xff, 0x3e, 0x38, 0xb8, 0xff, 0x41, 0x37, 0xa2, 0xff, 0x44, 0x36, 0x82, 0xff, 0x48, 0x33, 0x5a, 0xff, 0x4c, 0x32, 0x36, 0xff, 0x4e, 0x30, 0x1d, 0xff, 0x4f, 0x30, 0x17, 0xff, 0x4f, 0x30, 0x17, 0xff, 0x4f, 0x30, 0x17, 0xff, 0x4f, 0x30, 0x17, 0xff, 0x4f, 0x30, 0x17, 0xff, 0x4f, 0x30, 0x17, 0xff, 0x59, 0x1f, 0x00, 0xff, 0x43, 0x41, 0x41, 0xff, 0x0c, 0x97, 0xff, 0xff, 0x37, 0x53, 0x6b, 0xff, 0x54, 0x20, 0x00, 0xf9, 0x3e, 0x3f, 0x40, 0xef, 0x1b, 0x73, 0xbf, 0xfb, 0x15, 0x77, 0xc7, 0xfb, 0x1b, 0x6d, 0xb0, 0x85, + 0x14, 0x76, 0xb1, 0x0d, 0x1b, 0x6e, 0xb2, 0x9e, 0x16, 0x7b, 0xcf, 0xff, 0x18, 0x76, 0xc7, 0xff, 0x2e, 0x54, 0x75, 0xff, 0x26, 0x61, 0x95, 0xff, 0x16, 0x7a, 0xd0, 0xff, 0x26, 0x60, 0x92, 0xff, 0x2c, 0x55, 0x7b, 0xff, 0x2a, 0x5b, 0x87, 0xff, 0x2a, 0x5b, 0x86, 0xff, 0x2a, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x29, 0x5b, 0x86, 0xff, 0x2a, 0x5b, 0x86, 0xff, 0x2a, 0x5b, 0x86, 0xff, 0x2a, 0x5b, 0x87, 0xff, 0x2c, 0x55, 0x7b, 0xff, 0x26, 0x60, 0x92, 0xff, 0x16, 0x7a, 0xd0, 0xff, 0x26, 0x61, 0x94, 0xff, 0x2e, 0x54, 0x75, 0xff, 0x18, 0x76, 0xc5, 0xff, 0x16, 0x7b, 0xcd, 0xff, 0x1b, 0x6e, 0xb3, 0x9e, 0x14, 0x76, 0xb1, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1a, 0x66, 0xb3, 0x0a, 0x1c, 0x6f, 0xb3, 0x91, 0x17, 0x77, 0xc7, 0xe5, 0x10, 0x7f, 0xe0, 0xe3, 0x15, 0x74, 0xc5, 0xd9, 0x1d, 0x66, 0xa5, 0xda, 0x15, 0x76, 0xc9, 0xda, 0x12, 0x7c, 0xd7, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x13, 0x78, 0xd0, 0xda, 0x12, 0x7c, 0xd7, 0xda, 0x15, 0x76, 0xc9, 0xda, 0x1d, 0x66, 0xa5, 0xda, 0x15, 0x74, 0xc5, 0xd9, 0x10, 0x7f, 0xe0, 0xe3, 0x17, 0x77, 0xc7, 0xe5, 0x1c, 0x6f, 0xb3, 0x91, 0x1a, 0x66, 0xb3, 0x0a, 0x00, 0x00, 0x00, 0x00, +#endif +}; + +const lv_img_dsc_t img_cab_disabled = { + .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA, + .header.always_zero = 0, + .header.reserved = 0, + .header.w = 45, + .header.h = 53, + .data_size = 2385 * LV_IMG_PX_SIZE_ALPHA_BYTE, + .data = img_cab_disabled_map, +}; diff --git a/source/main/ui_generated_800x480land/images.c b/source/main/ui_generated_800x480land/images.c index 15bc1055..a53f6068 100644 --- a/source/main/ui_generated_800x480land/images.c +++ b/source/main/ui_generated_800x480land/images.c @@ -1,6 +1,6 @@ #include "images.h" -const ext_img_desc_t images[113] = { +const ext_img_desc_t images[115] = { { "arrow_left", &img_arrow_left }, { "arrow_right", &img_arrow_right }, { "bt_conn", &img_bt_conn }, @@ -114,4 +114,6 @@ const ext_img_desc_t images[113] = { { "rvb_on", &img_rvb_on }, { "tc_off", &img_tc_off }, { "tc_on", &img_tc_on }, + { "amp_disabled", &img_amp_disabled }, + { "cab_disabled", &img_cab_disabled }, }; diff --git a/source/main/ui_generated_800x480land/images.h b/source/main/ui_generated_800x480land/images.h index b27c0445..4296723e 100644 --- a/source/main/ui_generated_800x480land/images.h +++ b/source/main/ui_generated_800x480land/images.h @@ -120,6 +120,8 @@ extern const lv_img_dsc_t img_rvb_off; extern const lv_img_dsc_t img_rvb_on; extern const lv_img_dsc_t img_tc_off; extern const lv_img_dsc_t img_tc_on; +extern const lv_img_dsc_t img_amp_disabled; +extern const lv_img_dsc_t img_cab_disabled; #ifndef EXT_IMG_DESC_T #define EXT_IMG_DESC_T @@ -129,7 +131,7 @@ typedef struct _ext_img_desc_t { } ext_img_desc_t; #endif -extern const ext_img_desc_t images[113]; +extern const ext_img_desc_t images[115]; #ifdef __cplusplus diff --git a/source/main/ui_generated_800x480land/ui_image_amp_disabled.c b/source/main/ui_generated_800x480land/ui_image_amp_disabled.c new file mode 100644 index 00000000..412ce656 --- /dev/null +++ b/source/main/ui_generated_800x480land/ui_image_amp_disabled.c @@ -0,0 +1,333 @@ +#ifdef __has_include + #if __has_include("lvgl.h") + #ifndef LV_LVGL_H_INCLUDE_SIMPLE + #define LV_LVGL_H_INCLUDE_SIMPLE + #endif + #endif +#endif +#ifdef __has_include + #if __has_include("lvgl.h") + #ifndef LV_LVGL_H_INCLUDE_SIMPLE + #define LV_LVGL_H_INCLUDE_SIMPLE + #endif + #endif +#endif + +#if defined(LV_LVGL_H_INCLUDE_SIMPLE) + #include "lvgl.h" +#else + #include "lvgl/lvgl.h" +#endif + + +#ifndef LV_ATTRIBUTE_MEM_ALIGN +#define LV_ATTRIBUTE_MEM_ALIGN +#endif + +#ifndef LV_ATTRIBUTE_IMG_IMG_AMP_DISABLED +#define LV_ATTRIBUTE_IMG_IMG_AMP_DISABLED +#endif + +const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_IMG_AMP_DISABLED uint8_t img_amp_disabled_map[] = { +#if LV_COLOR_DEPTH == 1 || LV_COLOR_DEPTH == 8 + /*Pixel format: Alpha 8 bit, Red: 3 bit, Green: 3 bit, Blue: 2 bit*/ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x46, 0xf5, 0xb5, 0xf5, 0xed, 0xf5, 0xf5, 0xf5, 0xf0, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xef, 0xf5, 0xf1, 0xf5, 0xf4, 0xf5, 0xeb, 0xf5, 0xb4, 0xf5, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x75, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xf9, 0xf5, 0xf1, 0xf5, 0xf3, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf4, 0xf5, 0xf3, 0xf5, 0xf1, 0xf5, 0xf9, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x58, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0x9f, 0xf5, 0x3e, 0xf5, 0x33, 0xf5, 0x3a, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x3b, 0xf5, 0x39, 0xf5, 0x33, 0xf5, 0x3e, 0xf5, 0x9f, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x13, 0xf5, 0xbe, 0xf5, 0xff, 0xf5, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x92, 0xf5, 0xff, 0xf5, 0xbf, 0xf5, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x2f, 0xf5, 0xff, 0xf5, 0xef, 0xf9, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x31, 0xf5, 0xef, 0xf5, 0xff, 0xf5, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, 0xb5, 0x03, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x00, 0x00, 0xd5, 0x38, 0xf9, 0xff, 0xf9, 0xd9, 0xd5, 0x1d, 0x00, 0x00, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x00, 0x00, 0xf5, 0x1d, 0xf9, 0xd9, 0xf9, 0xff, 0xd5, 0x39, 0x00, 0x00, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0xb5, 0x03, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd5, 0x0d, 0xd1, 0x5a, 0xd1, 0x94, 0xd1, 0x9f, 0xd1, 0x9c, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x8f, 0xd1, 0xaf, 0xd5, 0xff, 0xd5, 0xf2, 0xd1, 0x9c, 0xd1, 0x8e, 0xd1, 0x9b, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9b, 0xd1, 0x8e, 0xd1, 0x9c, 0xd5, 0xf2, 0xd5, 0xff, 0xd1, 0xaf, 0xd1, 0x8f, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9a, 0xd1, 0x9c, 0xd1, 0x9f, 0xd1, 0x94, 0xd1, 0x5a, 0xd5, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xd5, 0x1a, 0xd1, 0xbb, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xbb, 0xd9, 0x1a, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xd5, 0x0f, 0xd5, 0xc0, 0xd1, 0xff, 0xd1, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xed, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xed, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd5, 0xc0, 0xd5, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xd1, 0x76, 0xd1, 0xff, 0xd1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xcd, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xcd, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xb1, 0xff, 0xad, 0xff, 0xd1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0x7a, 0xd1, 0x1f, + 0xd1, 0x2d, 0xd1, 0xbc, 0xd1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0x8d, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xa9, 0xff, 0x68, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xff, 0xd1, 0xc4, 0xd1, 0x84, + 0xb2, 0x55, 0xd1, 0xd4, 0xd5, 0xff, 0xf5, 0xff, 0xb1, 0xff, 0x44, 0xff, 0x48, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x48, 0xff, 0x44, 0xff, 0xb1, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xda, 0xd1, 0xa4, + 0xd1, 0x52, 0xd1, 0xd1, 0xf5, 0xff, 0xf5, 0xff, 0x8d, 0xff, 0x44, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x44, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd7, 0xd1, 0xa1, + 0xd1, 0x51, 0xd1, 0xd1, 0xf5, 0xff, 0xf5, 0xff, 0x8d, 0xff, 0x48, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xa9, 0xff, 0xa9, 0xff, 0x89, 0xff, 0x89, 0xff, 0x89, 0xff, 0x89, 0xff, 0x89, 0xff, 0xa9, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xf5, 0xff, 0xf5, 0xff, 0x8d, 0xff, 0x48, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xf5, 0xff, 0xf5, 0xff, 0x8d, 0xff, 0x48, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xf5, 0xff, 0xf5, 0xff, 0x8d, 0xff, 0x48, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xf5, 0xff, 0xf5, 0xff, 0x8d, 0xff, 0x48, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x69, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xf5, 0xff, 0xf5, 0xff, 0x8d, 0xff, 0x48, 0xff, 0x69, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x88, 0xff, 0x6d, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x44, 0xff, 0x69, 0xff, 0x69, 0xff, 0x44, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x48, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x44, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x44, 0xff, 0x68, 0xff, 0x69, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xf5, 0xff, 0xf5, 0xff, 0x8d, 0xff, 0x48, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x88, 0xff, 0x6d, 0xff, 0x68, 0xff, 0x68, 0xff, 0xd6, 0xff, 0x6d, 0xff, 0x6d, 0xff, 0xb6, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xb6, 0xff, 0x49, 0xff, 0xb6, 0xff, 0x91, 0xff, 0x44, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0xb6, 0xff, 0x6d, 0xff, 0x49, 0xff, 0xd6, 0xff, 0x68, 0xff, 0x68, 0xff, 0x6d, 0xff, 0x68, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xf5, 0xff, 0xf5, 0xff, 0x8d, 0xff, 0x48, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x44, 0xff, 0xb1, 0xff, 0xff, 0xff, 0x6d, 0xff, 0x6d, 0xff, 0xff, 0xff, 0xb1, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0xff, 0xff, 0xff, 0xff, 0x24, 0xff, 0xdb, 0xff, 0xff, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0xb1, 0xff, 0xff, 0xff, 0x6d, 0xff, 0x49, 0xff, 0xff, 0xff, 0xb2, 0xff, 0x68, 0xff, 0x68, 0xff, 0x44, 0xff, 0xd6, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xf5, 0xff, 0xf5, 0xff, 0x8d, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x88, 0xff, 0xda, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xd6, 0xff, 0x68, 0xff, 0x44, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xda, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x44, 0xff, 0x68, 0xff, 0xd6, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xda, 0xff, 0xff, 0xff, 0xfb, 0xff, 0x68, 0xff, 0x44, 0xff, 0x69, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xf5, 0xff, 0xf5, 0xff, 0x8d, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xfa, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb2, 0xff, 0x68, 0xff, 0x68, 0xff, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x48, 0xff, 0x68, 0xff, 0xb2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xff, 0x68, 0xff, 0x48, 0xff, 0x68, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xf5, 0xff, 0xf5, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x88, 0xff, 0xb2, 0xff, 0xfb, 0xff, 0xee, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xff, 0x69, 0xff, 0x68, 0xff, 0x69, 0xff, 0x48, 0xff, 0x91, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb2, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x69, 0xff, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0x6d, 0xff, 0x68, 0xff, 0x69, 0xff, 0x48, 0xff, 0x8d, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xf5, 0xff, 0xf5, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x68, 0xff, 0x68, 0xff, 0x8d, 0xff, 0xb1, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xad, 0xff, 0x91, 0xff, 0x69, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x68, 0xff, 0x8d, 0xff, 0xb1, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x69, 0xff, 0x91, 0xff, 0x91, 0xff, 0x69, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x6d, 0xff, 0x91, 0xff, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x8d, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x48, 0xff, 0x44, 0xff, 0x68, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x88, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x48, 0xff, 0x44, 0xff, 0x48, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x48, 0xff, 0x44, 0xff, 0x68, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x68, 0xff, 0x44, 0xff, 0x48, 0xff, 0x69, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xf5, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd2, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd2, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd7, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xcd, 0xe1, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xed, 0xea, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x68, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x48, 0xff, 0x68, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xed, 0xf1, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xe9, 0xf5, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xe9, 0xf9, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xe9, 0xfb, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xe9, 0xfc, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xe9, 0xfa, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xe9, 0xf8, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xe9, 0xf4, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xed, 0xef, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xed, 0xe9, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xcd, 0xe0, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd6, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf0, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd2, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xd1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf0, 0xff, 0xf1, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xd1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf0, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xee, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xd1, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xd1, 0xff, 0xd1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xd1, 0xff, 0xd5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xd0, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf0, 0xff, 0xf1, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xd1, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xd0, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf0, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf7, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xd1, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf0, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xd1, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xd0, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xd1, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xd0, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xd0, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xd1, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf6, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xd1, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xec, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xd1, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf0, 0xff, 0xf6, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xd1, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xf6, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf6, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xf6, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xfa, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x51, 0xd1, 0xd1, 0xd1, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xd6, 0xd1, 0xa0, + 0xd1, 0x53, 0xd1, 0xd1, 0xd1, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xd7, 0xd1, 0xa1, + 0xb2, 0x5a, 0xd1, 0xd7, 0xd1, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xde, 0xd1, 0xa9, + 0xb1, 0x35, 0xd1, 0xc1, 0xd1, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xc8, 0xd1, 0x8b, + 0x00, 0x00, 0xad, 0x7f, 0xd1, 0xff, 0xd5, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xad, 0x84, 0xb1, 0x2b, + 0x00, 0x00, 0xd5, 0x19, 0xd1, 0xcd, 0xd1, 0xff, 0xd5, 0xff, 0xd5, 0xff, 0xd5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xf5, 0xff, 0xd5, 0xff, 0xd5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xcd, 0xd5, 0x1a, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf9, 0x2d, 0xd1, 0xd4, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd5, 0xff, 0xd5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xf1, 0xff, 0xed, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xed, 0xff, 0xf1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd5, 0xff, 0xd5, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd5, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xd4, 0xf9, 0x2d, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x19, 0xd1, 0x73, 0xd1, 0xb4, 0xd1, 0xc3, 0xd1, 0xc2, 0xd1, 0xac, 0xd1, 0x87, 0xd1, 0x8a, 0xd1, 0x8f, 0xd1, 0x8e, 0xd1, 0x8e, 0xd1, 0x8e, 0xd1, 0x8f, 0xd1, 0x89, 0xd1, 0x8d, 0xd1, 0xb1, 0xd1, 0xbf, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbb, 0xd1, 0xbe, 0xd1, 0xb2, 0xd1, 0x8f, 0xd1, 0x89, 0xd1, 0x8f, 0xd1, 0x8e, 0xd1, 0x8e, 0xd1, 0x8e, 0xd1, 0x8f, 0xd1, 0x8b, 0xd1, 0x86, 0xd1, 0xaa, 0xd1, 0xc2, 0xd1, 0xc3, 0xd1, 0xb4, 0xd1, 0x73, 0xd1, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x04, 0xd1, 0x0b, 0xac, 0x03, 0xb7, 0x09, 0xbb, 0x27, 0xb7, 0x23, 0xbb, 0x1e, 0xb7, 0x1f, 0xb7, 0x1f, 0xb7, 0x1f, 0xbb, 0x1e, 0xbb, 0x24, 0xb7, 0x1f, 0xd6, 0x0a, 0xd0, 0x09, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd5, 0x07, 0xd0, 0x09, 0xb2, 0x09, 0xbb, 0x1e, 0xbb, 0x24, 0xbb, 0x1e, 0xb7, 0x1f, 0xb7, 0x1f, 0xb7, 0x1f, 0xbb, 0x1e, 0xb7, 0x23, 0xb7, 0x27, 0xbb, 0x0a, 0xb4, 0x03, 0xd1, 0x0b, 0xd1, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbb, 0x59, 0xbb, 0xff, 0xbb, 0xf4, 0xbb, 0xea, 0xbb, 0xeb, 0xbb, 0xeb, 0xbb, 0xeb, 0xbb, 0xe9, 0xbb, 0xf4, 0xb7, 0xec, 0xb7, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbb, 0x43, 0xbb, 0xea, 0xbb, 0xf4, 0xbb, 0xe9, 0xbb, 0xeb, 0xbb, 0xeb, 0xbb, 0xeb, 0xbb, 0xea, 0xbb, 0xf4, 0xb7, 0xff, 0xb7, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0x5c, 0xb7, 0xff, 0xb7, 0xff, 0xb7, 0xff, 0xb7, 0xff, 0xb7, 0xff, 0xb7, 0xff, 0xdb, 0xff, 0xb7, 0xff, 0xb6, 0xf6, 0x96, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0x41, 0xb7, 0xf5, 0xb7, 0xff, 0xb7, 0xff, 0xb7, 0xff, 0xb7, 0xff, 0xb7, 0xff, 0xbb, 0xff, 0xdb, 0xff, 0xb6, 0xff, 0xb6, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0x04, 0xb7, 0x88, 0xb7, 0xee, 0xb7, 0xe7, 0xb7, 0xdf, 0xb7, 0xdf, 0xb7, 0xde, 0xb7, 0xe9, 0xb7, 0xe3, 0xb6, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0x63, 0xb7, 0xe4, 0xb7, 0xea, 0xb7, 0xde, 0xb7, 0xdf, 0xb7, 0xdf, 0xb7, 0xe7, 0xb7, 0xed, 0xb6, 0x86, 0x92, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#endif +#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP == 0 + /*Pixel format: Alpha 8 bit, Red: 5 bit, Green: 6 bit, Blue: 5 bit*/ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0xed, 0x46, 0x4a, 0xed, 0xb5, 0x4a, 0xed, 0xed, 0x4a, 0xed, 0xf5, 0x4a, 0xed, 0xf0, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xef, 0x4a, 0xed, 0xf1, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xeb, 0x4a, 0xed, 0xb4, 0x4a, 0xed, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0xed, 0x75, 0x4a, 0xed, 0xff, 0x4a, 0xed, 0xff, 0x4a, 0xed, 0xf9, 0x4a, 0xed, 0xf1, 0x4a, 0xed, 0xf3, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf4, 0x4a, 0xed, 0xf3, 0x4a, 0xed, 0xf1, 0x4a, 0xed, 0xf9, 0x4a, 0xed, 0xff, 0x4a, 0xed, 0xff, 0x4a, 0xed, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4a, 0xed, 0x58, 0x4a, 0xed, 0xff, 0x4a, 0xed, 0xff, 0x4a, 0xed, 0x9f, 0x4a, 0xed, 0x3e, 0x6a, 0xed, 0x33, 0x4a, 0xed, 0x3a, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x4a, 0xed, 0x3b, 0x6a, 0xed, 0x39, 0x6a, 0xed, 0x33, 0x4a, 0xed, 0x3e, 0x4a, 0xed, 0x9f, 0x4a, 0xed, 0xff, 0x4a, 0xed, 0xff, 0x6a, 0xed, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8a, 0xf5, 0x13, 0x4a, 0xed, 0xbe, 0x4a, 0xe5, 0xff, 0x4a, 0xed, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4a, 0xed, 0x92, 0x4a, 0xed, 0xff, 0x4a, 0xed, 0xbf, 0x8a, 0xed, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe5, 0x2f, 0x6a, 0xed, 0xff, 0x6a, 0xed, 0xef, 0xcb, 0xfd, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcb, 0xfd, 0x31, 0x6a, 0xed, 0xef, 0x4a, 0xed, 0xff, 0x2a, 0xe5, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x01, 0x6b, 0xad, 0x03, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x00, 0x00, 0xc8, 0xd4, 0x38, 0x8b, 0xf5, 0xff, 0xcb, 0xfd, 0xd9, 0xa9, 0xcc, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x00, 0x00, 0xa9, 0xd4, 0x1d, 0xcb, 0xfd, 0xd9, 0xab, 0xf5, 0xff, 0xc8, 0xd4, 0x39, 0x00, 0x00, 0x00, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x6b, 0xad, 0x03, 0xe0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0xcc, 0x0d, 0x67, 0xc4, 0x5a, 0x27, 0xc4, 0x94, 0x67, 0xc4, 0x9f, 0x47, 0xc4, 0x9c, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xbc, 0x8f, 0x67, 0xc4, 0xaf, 0xc9, 0xd4, 0xff, 0xa8, 0xd4, 0xf2, 0x06, 0xbc, 0x9c, 0x27, 0xbc, 0x8e, 0x47, 0xc4, 0x9b, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9b, 0x27, 0xbc, 0x8e, 0x06, 0xbc, 0x9c, 0xa8, 0xd4, 0xf2, 0xc9, 0xd4, 0xff, 0x47, 0xc4, 0xaf, 0x47, 0xbc, 0x8f, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9a, 0x47, 0xc4, 0x9c, 0x47, 0xc4, 0x9f, 0x27, 0xc4, 0x94, 0x67, 0xc4, 0x5a, 0xe7, 0xcc, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0xd5, 0x1a, 0x28, 0xc4, 0xbb, 0x67, 0xc4, 0xff, 0x47, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xcc, 0xff, 0x67, 0xc4, 0xff, 0x27, 0xbc, 0xff, 0x27, 0xbc, 0xff, 0x67, 0xc4, 0xff, 0x88, 0xcc, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x88, 0xcc, 0xff, 0x67, 0xc4, 0xff, 0x47, 0xbc, 0xff, 0x47, 0xbc, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xcc, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x47, 0xc4, 0xff, 0x27, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x28, 0xbc, 0xbb, 0x85, 0xd5, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x66, 0xd5, 0x0f, 0xa7, 0xc4, 0xc0, 0xe8, 0xbb, 0xff, 0x67, 0xc4, 0xff, 0xa8, 0xd4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x28, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x29, 0xe5, 0xff, 0x28, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x28, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x88, 0xe4, 0xff, 0xe8, 0xe3, 0xff, 0x48, 0xe3, 0xff, 0xe8, 0xe2, 0xff, 0x88, 0xe2, 0xff, 0x47, 0xe2, 0xff, 0x27, 0xe2, 0xff, 0x27, 0xe2, 0xff, 0x27, 0xe2, 0xff, 0x47, 0xe2, 0xff, 0xa8, 0xe2, 0xff, 0x08, 0xe3, 0xff, 0x68, 0xe3, 0xff, 0x28, 0xe4, 0xff, 0xa8, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x28, 0xe5, 0xff, 0x28, 0xe5, 0xff, 0x29, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x28, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xa8, 0xcc, 0xff, 0x67, 0xc4, 0xff, 0xc8, 0xbb, 0xff, 0xc6, 0xcc, 0xc0, 0xc9, 0xbc, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x47, 0xc4, 0x76, 0x28, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0xc8, 0xd4, 0xff, 0x08, 0xdd, 0xff, 0x27, 0xbc, 0xff, 0x86, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0x86, 0xa3, 0xff, 0x27, 0xbb, 0xff, 0xa7, 0xca, 0xff, 0x27, 0xda, 0xff, 0x07, 0xda, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x27, 0xda, 0xff, 0x47, 0xda, 0xff, 0xa7, 0xca, 0xff, 0x27, 0xb3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0xa6, 0xa3, 0xff, 0x86, 0xa3, 0xff, 0x27, 0xbc, 0xff, 0x08, 0xe5, 0xff, 0xc8, 0xd4, 0xff, 0x67, 0xc4, 0xff, 0x27, 0xc4, 0xff, 0x28, 0xbc, 0x7a, 0x28, 0xbc, 0x1f, + 0x29, 0xbc, 0x2d, 0x28, 0xc4, 0xbc, 0x67, 0xc4, 0xff, 0xe8, 0xd4, 0xff, 0xe8, 0xdc, 0xff, 0xe5, 0x82, 0xff, 0xa3, 0x49, 0xff, 0xc3, 0x49, 0xff, 0xc3, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x61, 0xff, 0xe5, 0x99, 0xff, 0xe7, 0xc9, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xc9, 0xff, 0xe5, 0x91, 0xff, 0xe4, 0x59, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc3, 0x51, 0xff, 0xc3, 0x49, 0xff, 0xa3, 0x49, 0xff, 0xe5, 0x82, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0x67, 0xc4, 0xff, 0x47, 0xc4, 0xc4, 0x67, 0xc4, 0x84, + 0x2c, 0xa4, 0x55, 0x48, 0xbc, 0xd4, 0x87, 0xd4, 0xff, 0x29, 0xed, 0xff, 0xa6, 0xa3, 0xff, 0x63, 0x41, 0xff, 0xc3, 0x49, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x6a, 0xff, 0xe6, 0xa9, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x06, 0xa2, 0xff, 0x04, 0x62, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0x04, 0x5a, 0xff, 0xc3, 0x49, 0xff, 0x63, 0x41, 0xff, 0xa6, 0xa3, 0xff, 0x29, 0xed, 0xff, 0x88, 0xcc, 0xff, 0x67, 0xc4, 0xda, 0x67, 0xc4, 0xa4, + 0x48, 0xbc, 0x52, 0x47, 0xc4, 0xd1, 0xc8, 0xd4, 0xff, 0x49, 0xed, 0xff, 0xe5, 0x82, 0xff, 0x83, 0x41, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x44, 0x62, 0xff, 0x26, 0x9a, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x25, 0x92, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x83, 0x41, 0xff, 0xe5, 0x82, 0xff, 0x49, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x47, 0xc4, 0xd7, 0x67, 0xc4, 0xa1, + 0x67, 0xcc, 0x51, 0x67, 0xc4, 0xd1, 0xc8, 0xd4, 0xff, 0x49, 0xed, 0xff, 0xe5, 0x82, 0xff, 0x83, 0x41, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x25, 0x7a, 0xff, 0xe6, 0xc1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x06, 0xba, 0xff, 0x06, 0xaa, 0xff, 0x25, 0x92, 0xff, 0x25, 0x8a, 0xff, 0x25, 0x82, 0xff, 0x25, 0x7a, 0xff, 0x25, 0x82, 0xff, 0x25, 0x8a, 0xff, 0x25, 0x9a, 0xff, 0x06, 0xaa, 0xff, 0x06, 0xc2, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x06, 0xb2, 0xff, 0x25, 0x72, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x83, 0x41, 0xff, 0xe5, 0x82, 0xff, 0x49, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x67, 0xc4, 0xa0, + 0x68, 0xc4, 0x51, 0x67, 0xc4, 0xd1, 0xc8, 0xd4, 0xff, 0x49, 0xed, 0xff, 0xe5, 0x82, 0xff, 0x83, 0x41, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x25, 0x8a, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x06, 0xb2, 0xff, 0x25, 0x8a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x25, 0x92, 0xff, 0x06, 0xb2, 0xff, 0xe7, 0xd9, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xc9, 0xff, 0x25, 0x7a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x24, 0x62, 0xff, 0x83, 0x41, 0xff, 0xe5, 0x82, 0xff, 0x49, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x67, 0xc4, 0xd6, 0x67, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0x47, 0xc4, 0xd1, 0xc8, 0xd4, 0xff, 0x49, 0xed, 0xff, 0xe5, 0x82, 0xff, 0xa3, 0x41, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x05, 0x9a, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x06, 0xa2, 0xff, 0x45, 0x72, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x45, 0x7a, 0xff, 0x26, 0xaa, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x25, 0x8a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0xa3, 0x41, 0xff, 0xe5, 0x82, 0xff, 0x49, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x67, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0x47, 0xc4, 0xd1, 0xc8, 0xd4, 0xff, 0x49, 0xed, 0xff, 0x05, 0x83, 0xff, 0x83, 0x41, 0xff, 0x24, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x05, 0x9a, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x06, 0xa2, 0xff, 0x45, 0x72, 0xff, 0x44, 0x62, 0xff, 0x65, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x45, 0x72, 0xff, 0x06, 0xb2, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x25, 0x8a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x24, 0x62, 0xff, 0x83, 0x41, 0xff, 0x05, 0x83, 0xff, 0x49, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x67, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0x47, 0xc4, 0xd1, 0xc8, 0xd4, 0xff, 0x49, 0xed, 0xff, 0x05, 0x83, 0xff, 0xa3, 0x49, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x26, 0x9a, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x06, 0xba, 0xff, 0x45, 0x82, 0xff, 0x44, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x24, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x24, 0x62, 0xff, 0x65, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x23, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x23, 0x62, 0xff, 0x44, 0x62, 0xff, 0x65, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x24, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x23, 0x5a, 0xff, 0x65, 0x6a, 0xff, 0x45, 0x92, 0xff, 0xe7, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0x25, 0x8a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0xa3, 0x49, 0xff, 0x05, 0x83, 0xff, 0x49, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x67, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0x47, 0xc4, 0xd1, 0xc8, 0xd4, 0xff, 0x49, 0xed, 0xff, 0x05, 0x83, 0xff, 0xa3, 0x49, 0xff, 0x44, 0x62, 0xff, 0x25, 0x8a, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc3, 0x79, 0xff, 0x85, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x23, 0x62, 0xff, 0x40, 0x49, 0xff, 0x64, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x61, 0x49, 0xff, 0x24, 0x62, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0xa1, 0x51, 0xff, 0xc2, 0x59, 0xff, 0xc6, 0x7a, 0xff, 0xc2, 0x59, 0xff, 0x81, 0x49, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x24, 0x62, 0xff, 0x81, 0x49, 0xff, 0x64, 0x6a, 0xff, 0xa5, 0x72, 0xff, 0x60, 0x49, 0xff, 0x03, 0x5a, 0xff, 0x85, 0x6a, 0xff, 0x45, 0x7a, 0xff, 0x07, 0xba, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x45, 0x82, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0xa3, 0x49, 0xff, 0xe5, 0x82, 0xff, 0x49, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x67, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0x47, 0xc4, 0xd1, 0xc8, 0xd4, 0xff, 0x49, 0xed, 0xff, 0xe5, 0x82, 0xff, 0xa3, 0x49, 0xff, 0x25, 0x7a, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xd2, 0xff, 0xa3, 0x79, 0xff, 0x85, 0x72, 0xff, 0x03, 0x5a, 0xff, 0xc2, 0x59, 0xff, 0x2f, 0xc5, 0xff, 0xe9, 0x6a, 0xff, 0xe9, 0x6a, 0xff, 0x8d, 0xac, 0xff, 0x03, 0x62, 0xff, 0x44, 0x62, 0xff, 0x85, 0x6a, 0xff, 0x81, 0x49, 0xff, 0x27, 0x83, 0xff, 0xcf, 0xac, 0xff, 0xa6, 0x39, 0xff, 0xcf, 0xac, 0xff, 0x88, 0x93, 0xff, 0x61, 0x49, 0xff, 0x85, 0x6a, 0xff, 0x44, 0x62, 0xff, 0xe2, 0x59, 0xff, 0xad, 0xb4, 0xff, 0xea, 0x6a, 0xff, 0x27, 0x4a, 0xff, 0x50, 0xc5, 0xff, 0x03, 0x62, 0xff, 0x03, 0x5a, 0xff, 0xa5, 0x72, 0xff, 0xc3, 0x61, 0xff, 0x06, 0xb2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xc9, 0xff, 0x45, 0x6a, 0xff, 0x44, 0x62, 0xff, 0xa3, 0x49, 0xff, 0xe5, 0x82, 0xff, 0x49, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x67, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0x47, 0xc4, 0xd1, 0xc8, 0xd4, 0xff, 0x49, 0xed, 0xff, 0xe5, 0x82, 0xff, 0xa3, 0x49, 0xff, 0x07, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc6, 0xd1, 0xff, 0xe4, 0x81, 0xff, 0x60, 0x49, 0xff, 0x2c, 0x9c, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x6b, 0xff, 0x2a, 0x73, 0xff, 0xfd, 0xff, 0xff, 0xeb, 0x9b, 0xff, 0xe2, 0x59, 0xff, 0x03, 0x5a, 0xff, 0xc1, 0x59, 0xff, 0xd8, 0xee, 0xff, 0x1b, 0xdf, 0xff, 0xc3, 0x18, 0xff, 0x78, 0xce, 0xff, 0x1a, 0xef, 0xff, 0x03, 0x62, 0xff, 0xc2, 0x59, 0xff, 0xe2, 0x59, 0xff, 0xca, 0x93, 0xff, 0xfe, 0xff, 0xff, 0x0b, 0x63, 0xff, 0xc6, 0x39, 0xff, 0xff, 0xff, 0xff, 0x8e, 0xac, 0xff, 0xa1, 0x51, 0xff, 0x03, 0x5a, 0xff, 0x61, 0x51, 0xff, 0x71, 0xcd, 0xff, 0x50, 0xf4, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x06, 0xb2, 0xff, 0x44, 0x62, 0xff, 0xa3, 0x49, 0xff, 0xe5, 0x82, 0xff, 0x49, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x67, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0x47, 0xc4, 0xd1, 0xc8, 0xd4, 0xff, 0x49, 0xed, 0xff, 0xe5, 0x82, 0xff, 0xc5, 0x89, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xaa, 0xea, 0xff, 0xe8, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc6, 0xd1, 0xff, 0xc3, 0x81, 0xff, 0xd3, 0xcd, 0xff, 0xfc, 0xff, 0xff, 0x14, 0xd6, 0xff, 0x34, 0xd6, 0xff, 0xba, 0xff, 0xff, 0x51, 0xc5, 0xff, 0xe3, 0x59, 0xff, 0x81, 0x49, 0xff, 0x28, 0x83, 0xff, 0xba, 0xff, 0xff, 0x38, 0xf7, 0xff, 0x92, 0xc5, 0xff, 0x18, 0xf7, 0xff, 0xdc, 0xff, 0xff, 0x69, 0x8b, 0xff, 0x40, 0x49, 0xff, 0xc2, 0x59, 0xff, 0x51, 0xbd, 0xff, 0xfb, 0xff, 0xff, 0x13, 0xd6, 0xff, 0xd3, 0xcd, 0xff, 0xbb, 0xff, 0xff, 0x35, 0xde, 0xff, 0x03, 0x62, 0xff, 0x40, 0x49, 0xff, 0x45, 0x6a, 0xff, 0xf8, 0xee, 0xff, 0x59, 0xff, 0xff, 0x0b, 0xdb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x25, 0x8a, 0xff, 0xa3, 0x49, 0xff, 0xe5, 0x82, 0xff, 0x49, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x67, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0x47, 0xc4, 0xd1, 0xc8, 0xd4, 0xff, 0x49, 0xed, 0xff, 0xe5, 0x8a, 0xff, 0xc7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xca, 0xff, 0xd4, 0xed, 0xff, 0x0e, 0xf4, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x0d, 0xc4, 0xff, 0x79, 0xff, 0xff, 0x99, 0xff, 0xff, 0x79, 0xff, 0xff, 0x38, 0xff, 0xff, 0x8e, 0xac, 0xff, 0xe3, 0x59, 0xff, 0xc2, 0x51, 0xff, 0xa6, 0x72, 0xff, 0x96, 0xee, 0xff, 0x99, 0xff, 0xff, 0xb9, 0xff, 0xff, 0x99, 0xff, 0xff, 0xf7, 0xf6, 0xff, 0xc7, 0x72, 0xff, 0x81, 0x51, 0xff, 0xc2, 0x59, 0xff, 0x6d, 0xa4, 0xff, 0x18, 0xff, 0xff, 0x78, 0xff, 0xff, 0xb9, 0xff, 0xff, 0x79, 0xff, 0xff, 0x30, 0xbd, 0xff, 0xe3, 0x59, 0xff, 0xa1, 0x51, 0xff, 0x03, 0x5a, 0xff, 0x14, 0xde, 0xff, 0x9a, 0xff, 0xff, 0xf7, 0xfe, 0xff, 0xaa, 0xea, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xc9, 0xff, 0xa3, 0x49, 0xff, 0xe5, 0x82, 0xff, 0x49, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x67, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0x47, 0xc4, 0xd1, 0xc8, 0xd4, 0xff, 0x49, 0xed, 0xff, 0x46, 0xba, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xe4, 0x71, 0xff, 0x4d, 0xa4, 0xff, 0x56, 0xee, 0xff, 0x8d, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xb0, 0xd4, 0xff, 0x39, 0xff, 0xff, 0xf8, 0xf6, 0xff, 0x72, 0xc5, 0xff, 0x85, 0x6a, 0xff, 0x23, 0x62, 0xff, 0x64, 0x6a, 0xff, 0xa2, 0x51, 0xff, 0xcb, 0x93, 0xff, 0xd7, 0xee, 0xff, 0x39, 0xff, 0xff, 0xf8, 0xf6, 0xff, 0x0c, 0x9c, 0xff, 0xa2, 0x51, 0xff, 0x24, 0x62, 0xff, 0x23, 0x62, 0xff, 0x44, 0x62, 0xff, 0x51, 0xc5, 0xff, 0x18, 0xf7, 0xff, 0x39, 0xff, 0xff, 0xf4, 0xd5, 0xff, 0xa6, 0x6a, 0xff, 0xe2, 0x59, 0xff, 0x64, 0x6a, 0xff, 0xa2, 0x51, 0xff, 0x48, 0x83, 0xff, 0x76, 0xe6, 0xff, 0x39, 0xff, 0xff, 0x73, 0xed, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc5, 0x91, 0xff, 0xe5, 0x82, 0xff, 0x49, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x67, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0x47, 0xc4, 0xd1, 0xc8, 0xd4, 0xff, 0xe9, 0xec, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x26, 0xaa, 0xff, 0x03, 0x5a, 0xff, 0xe3, 0x59, 0xff, 0x28, 0x7b, 0xff, 0xab, 0x9b, 0xff, 0x27, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x2a, 0xa3, 0xff, 0xaa, 0x8b, 0xff, 0x45, 0x62, 0xff, 0xe3, 0x59, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x24, 0x62, 0xff, 0xc2, 0x51, 0xff, 0xe7, 0x72, 0xff, 0xec, 0x93, 0xff, 0x08, 0x7b, 0xff, 0xc2, 0x51, 0xff, 0x23, 0x62, 0xff, 0x65, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0xe3, 0x59, 0xff, 0x24, 0x62, 0xff, 0x8a, 0x8b, 0xff, 0xcb, 0x93, 0xff, 0x65, 0x62, 0xff, 0xc2, 0x51, 0xff, 0x44, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x44, 0x62, 0xff, 0xc2, 0x51, 0xff, 0xa6, 0x6a, 0xff, 0xcb, 0x93, 0xff, 0x28, 0x7b, 0xff, 0xe6, 0xb1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xc9, 0xff, 0xe5, 0x8a, 0xff, 0x49, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x67, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0x47, 0xc4, 0xd1, 0xc8, 0xd4, 0xff, 0x88, 0xeb, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x24, 0x62, 0xff, 0xa2, 0x49, 0xff, 0x61, 0x49, 0xff, 0xc3, 0x59, 0xff, 0x06, 0xba, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xd1, 0xff, 0xa3, 0x71, 0xff, 0xe3, 0x59, 0xff, 0x45, 0x62, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x44, 0x62, 0xff, 0xa2, 0x51, 0xff, 0x61, 0x49, 0xff, 0xa2, 0x51, 0xff, 0x24, 0x62, 0xff, 0x65, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x45, 0x6a, 0xff, 0x03, 0x5a, 0xff, 0x81, 0x49, 0xff, 0x61, 0x49, 0xff, 0xe3, 0x59, 0xff, 0x45, 0x62, 0xff, 0x65, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x62, 0xff, 0xc2, 0x51, 0xff, 0x61, 0x49, 0xff, 0xa2, 0x49, 0xff, 0x04, 0x6a, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x86, 0xaa, 0xff, 0x29, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x67, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0x47, 0xc4, 0xd1, 0xa8, 0xd4, 0xff, 0x48, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x26, 0x9a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x62, 0xff, 0x65, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x06, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x25, 0x8a, 0xff, 0x44, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x45, 0x6a, 0xff, 0x65, 0x62, 0xff, 0x65, 0x62, 0xff, 0x65, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x64, 0x62, 0xff, 0x45, 0x62, 0xff, 0x65, 0x62, 0xff, 0x44, 0x62, 0xff, 0x06, 0xb2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xca, 0xff, 0x29, 0xed, 0xff, 0xc8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x67, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0x47, 0xc4, 0xd2, 0xc8, 0xdb, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x64, 0x62, 0xff, 0x64, 0x6a, 0xff, 0x06, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x25, 0x8a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x62, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x45, 0x72, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xda, 0xff, 0x68, 0xec, 0xff, 0xa8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xc4, 0xa0, + 0x47, 0xc4, 0x51, 0x47, 0xc4, 0xd2, 0x08, 0xdb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x06, 0xb2, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x06, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x25, 0x8a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0xe6, 0xc1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xa8, 0xeb, 0xff, 0xa8, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xc4, 0xa0, + 0x47, 0xc4, 0x51, 0xe7, 0xc3, 0xd7, 0x67, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x25, 0x82, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x06, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x25, 0x8a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x44, 0x62, 0xff, 0x25, 0x92, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xe2, 0xff, 0x68, 0xd4, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xc4, 0xa0, + 0x47, 0xc4, 0x51, 0x67, 0xcb, 0xe1, 0x27, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x44, 0x6a, 0xff, 0x44, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x06, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x45, 0x8a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x45, 0x72, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x88, 0xe2, 0xff, 0xa8, 0xdb, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0xe7, 0xd2, 0xea, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc6, 0xb9, 0xff, 0xc4, 0x49, 0xff, 0xc4, 0x49, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc3, 0x51, 0xff, 0xe3, 0x51, 0xff, 0xe3, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe6, 0xb9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0xc5, 0x79, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xe4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xe3, 0x51, 0xff, 0xe3, 0x51, 0xff, 0xc3, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc4, 0x51, 0xff, 0xc7, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x28, 0xdb, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xc4, 0xa0, + 0x67, 0xc4, 0x51, 0x87, 0xda, 0xf1, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x26, 0xaa, 0xff, 0x64, 0x6a, 0xff, 0x64, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x72, 0xff, 0x06, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x45, 0x92, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x85, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x6a, 0xff, 0x65, 0x72, 0xff, 0x06, 0xba, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0xc7, 0xe2, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xc4, 0xa0, + 0x47, 0xc4, 0x51, 0x47, 0xda, 0xf5, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xe3, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x09, 0xed, 0xff, 0xe8, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x28, 0xec, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x29, 0xed, 0xff, 0x88, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x67, 0xe2, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xc4, 0xa0, + 0x47, 0xc4, 0x51, 0x27, 0xe2, 0xf9, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x69, 0xf4, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x49, 0xf5, 0xff, 0xe8, 0xea, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x48, 0xe2, 0xff, 0x68, 0xf4, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x69, 0xf5, 0xff, 0x08, 0xec, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xc4, 0xa0, + 0x47, 0xc4, 0x51, 0x07, 0xe2, 0xfb, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x68, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xc8, 0xe4, 0xff, 0xe8, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x28, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe4, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xc4, 0xa0, + 0x47, 0xc4, 0x51, 0x07, 0xe2, 0xfc, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x68, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xc8, 0xe4, 0xff, 0xe8, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x28, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x28, 0xe4, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xc4, 0xa0, + 0x47, 0xc4, 0x51, 0x07, 0xe2, 0xfa, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x48, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xc8, 0xe4, 0xff, 0xe8, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x28, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe4, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xc4, 0xa0, + 0x47, 0xc4, 0x51, 0x27, 0xe2, 0xf8, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xc8, 0xe4, 0xff, 0xe8, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x28, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xc8, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xc4, 0xa0, + 0x47, 0xc4, 0x51, 0x47, 0xda, 0xf4, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xe3, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xc8, 0xe4, 0xff, 0xe8, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x28, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x68, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x67, 0xda, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xc4, 0xa0, + 0x47, 0xc4, 0x51, 0xa7, 0xda, 0xef, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x48, 0xe3, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0xe7, 0xe4, 0xff, 0xc6, 0xdc, 0xff, 0xc6, 0xdc, 0xff, 0xc6, 0xdc, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xc7, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0xc6, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0xc8, 0xe4, 0xff, 0xe8, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x28, 0xe4, 0xff, 0x09, 0xe5, 0xff, 0xe7, 0xe4, 0xff, 0xc6, 0xdc, 0xff, 0xc6, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0xe7, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xe8, 0xe4, 0xff, 0x08, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0xc7, 0xda, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xc4, 0xa0, + 0x47, 0xbc, 0x51, 0xe7, 0xd2, 0xe9, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xa8, 0xe2, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0xe8, 0xe4, 0xff, 0xa6, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0xe7, 0xe4, 0xff, 0xc6, 0xdc, 0xff, 0xa6, 0xdc, 0xff, 0x08, 0xe5, 0xff, 0x29, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0xe8, 0xe4, 0xff, 0xc6, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0xc6, 0xdc, 0xff, 0xe7, 0xe4, 0xff, 0x29, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0xe9, 0xe4, 0xff, 0xc8, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x28, 0xe4, 0xff, 0xc6, 0xdc, 0xff, 0xc6, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0xc6, 0xdc, 0xff, 0xc6, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0xc6, 0xdc, 0xff, 0x85, 0xdc, 0xff, 0x84, 0xdc, 0xff, 0xe8, 0xe4, 0xff, 0x29, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xe8, 0xe4, 0xff, 0x67, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x28, 0xd3, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xbc, 0xa0, + 0x47, 0xbc, 0x51, 0x67, 0xcb, 0xe0, 0x27, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0xe8, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xe8, 0xe4, 0xff, 0xe7, 0xe4, 0xff, 0x94, 0xf6, 0xff, 0x5b, 0xff, 0xff, 0x39, 0xff, 0xff, 0x5a, 0xff, 0xff, 0xef, 0xed, 0xff, 0xa6, 0xdc, 0xff, 0x08, 0xe5, 0xff, 0x29, 0xe5, 0xff, 0xc6, 0xdc, 0xff, 0x6b, 0xe5, 0xff, 0x19, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x39, 0xff, 0xff, 0x4a, 0xe5, 0xff, 0xa5, 0xdc, 0xff, 0x29, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x65, 0xdc, 0xff, 0x2a, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x51, 0xed, 0xff, 0x7b, 0xff, 0xff, 0x39, 0xff, 0xff, 0x39, 0xff, 0xff, 0x39, 0xff, 0xff, 0x39, 0xff, 0xff, 0x19, 0xff, 0xff, 0xf7, 0xf6, 0xff, 0xad, 0xed, 0xff, 0x85, 0xdc, 0xff, 0xe8, 0xe4, 0xff, 0x09, 0xe5, 0xff, 0x88, 0xe4, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x87, 0xe2, 0xff, 0xa7, 0xd3, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xbc, 0xa0, + 0x47, 0xbc, 0x51, 0x07, 0xc4, 0xd6, 0x67, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x08, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xc6, 0xdc, 0xff, 0x6c, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0xc6, 0xdc, 0xff, 0xc6, 0xdc, 0xff, 0x2a, 0xe5, 0xff, 0x85, 0xdc, 0xff, 0xce, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x53, 0xf6, 0xff, 0x43, 0xdc, 0xff, 0x08, 0xe5, 0xff, 0xa6, 0xdc, 0xff, 0xe7, 0xe4, 0xff, 0x7c, 0xff, 0xff, 0xaf, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x6a, 0xea, 0xff, 0x59, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x31, 0xee, 0xff, 0xa6, 0xdc, 0xff, 0x09, 0xe5, 0xff, 0xc8, 0xe3, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xda, 0xff, 0x27, 0xcc, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xbc, 0xa0, + 0x47, 0xbc, 0x51, 0x47, 0xc4, 0xd2, 0x07, 0xdb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xe2, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0x08, 0xe5, 0xff, 0xa5, 0xdc, 0xff, 0x31, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xff, 0x6b, 0xe5, 0xff, 0x85, 0xdc, 0xff, 0x2a, 0xe5, 0xff, 0x85, 0xdc, 0xff, 0xae, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x39, 0xff, 0xff, 0xa5, 0xdc, 0xff, 0xc6, 0xdc, 0xff, 0x64, 0xdc, 0xff, 0x8d, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x8a, 0xea, 0xff, 0x59, 0xfe, 0xff, 0x7c, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x3a, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdd, 0xff, 0xff, 0x2a, 0xe5, 0xff, 0xa6, 0xdc, 0xff, 0xa8, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x68, 0xdb, 0xff, 0x67, 0xcc, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xbc, 0xa0, + 0x47, 0xbc, 0x51, 0x47, 0xc4, 0xd1, 0xc7, 0xd3, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0xc8, 0xe4, 0xff, 0x08, 0xe5, 0xff, 0xe8, 0xe4, 0xff, 0xa6, 0xdc, 0xff, 0xd6, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xbd, 0xff, 0xff, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x31, 0xee, 0xff, 0x84, 0xdc, 0xff, 0x09, 0xe5, 0xff, 0xa5, 0xdc, 0xff, 0xae, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0x4b, 0xe5, 0xff, 0x64, 0xdc, 0xff, 0x84, 0xdc, 0xff, 0x74, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xae, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x8a, 0xea, 0xff, 0x6a, 0xe4, 0xff, 0x85, 0xdc, 0xff, 0xc6, 0xdc, 0xff, 0xe8, 0xe4, 0xff, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xce, 0xed, 0xff, 0x05, 0xdc, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x28, 0xd4, 0xff, 0x67, 0xcc, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xbc, 0xa0, + 0x47, 0xbc, 0x51, 0x47, 0xc4, 0xd1, 0x67, 0xcc, 0xff, 0x47, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x28, 0xe3, 0xff, 0x08, 0xe5, 0xff, 0xe7, 0xe4, 0xff, 0x09, 0xe5, 0xff, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xff, 0xff, 0xad, 0xed, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xf6, 0xff, 0x85, 0xdc, 0xff, 0xe8, 0xe4, 0xff, 0xa5, 0xdc, 0xff, 0xad, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x39, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0x11, 0xee, 0xff, 0x21, 0xdc, 0xff, 0xc6, 0xdc, 0xff, 0x5a, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x48, 0xe2, 0xff, 0xa4, 0xdb, 0xff, 0xa5, 0xdc, 0xff, 0x63, 0xdc, 0xff, 0x18, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xed, 0xff, 0xe6, 0xe2, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xe2, 0xff, 0xa8, 0xd4, 0xff, 0x67, 0xcc, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xbc, 0xa0, + 0x47, 0xbc, 0x51, 0x47, 0xc4, 0xd1, 0x67, 0xcc, 0xff, 0x68, 0xdb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0xa9, 0xe4, 0xff, 0xa6, 0xdc, 0xff, 0x8c, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x95, 0xf6, 0xff, 0x85, 0xdc, 0xff, 0x5b, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7b, 0xff, 0xff, 0xe7, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0xa6, 0xdc, 0xff, 0xad, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb5, 0xf6, 0xff, 0xb6, 0xf6, 0xff, 0xff, 0xff, 0xff, 0x18, 0xf7, 0xff, 0x22, 0xd4, 0xff, 0x29, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xbd, 0xff, 0xff, 0x10, 0xee, 0xff, 0x5a, 0xff, 0xff, 0xff, 0xff, 0xff, 0x39, 0xff, 0xff, 0xa6, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x07, 0xe4, 0xff, 0x64, 0xdc, 0xff, 0xf7, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2d, 0xed, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0xc8, 0xdb, 0xff, 0xa8, 0xd4, 0xff, 0x67, 0xcc, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xbc, 0xa0, + 0x47, 0xbc, 0x51, 0x47, 0xc4, 0xd1, 0x67, 0xc4, 0xff, 0x68, 0xd4, 0xff, 0x27, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x28, 0xe3, 0xff, 0xa5, 0xdc, 0xff, 0x31, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x32, 0xee, 0xff, 0x00, 0xd4, 0xff, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8c, 0xe5, 0xff, 0x85, 0xdc, 0xff, 0xa5, 0xdc, 0xff, 0xae, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x74, 0xf6, 0xff, 0xad, 0xed, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xff, 0x84, 0xdc, 0xff, 0xce, 0xed, 0xff, 0xff, 0xff, 0xff, 0x18, 0xff, 0xff, 0x6b, 0xe5, 0xff, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x64, 0xdc, 0xff, 0xc7, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0xa4, 0xdb, 0xff, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe9, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x88, 0xe2, 0xff, 0xc8, 0xdc, 0xff, 0xa8, 0xd4, 0xff, 0x67, 0xc4, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xbc, 0xa0, + 0x47, 0xbc, 0x51, 0x47, 0xc4, 0xd1, 0x67, 0xc4, 0xff, 0xa8, 0xd4, 0xff, 0x48, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x07, 0xe4, 0xff, 0xf8, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xad, 0xe5, 0xff, 0xe0, 0xd3, 0xff, 0x73, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x32, 0xee, 0xff, 0x64, 0xdc, 0xff, 0x84, 0xdc, 0xff, 0xae, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x94, 0xf6, 0xff, 0xc7, 0xdc, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8c, 0xe5, 0xff, 0x94, 0xf6, 0xff, 0xff, 0xff, 0xff, 0x73, 0xf6, 0xff, 0xc7, 0xdc, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x84, 0xdc, 0xff, 0xa7, 0xdc, 0xff, 0xae, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x69, 0xe2, 0xff, 0x59, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x96, 0xf5, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xe3, 0xff, 0xc8, 0xdc, 0xff, 0xa8, 0xd4, 0xff, 0x67, 0xc4, 0xff, 0x47, 0xc4, 0xd6, 0x47, 0xbc, 0xa0, + 0x27, 0xbc, 0x51, 0x47, 0xbc, 0xd1, 0x67, 0xc4, 0xff, 0xa8, 0xd4, 0xff, 0xa8, 0xdc, 0xff, 0x27, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x88, 0xe2, 0xff, 0xda, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7b, 0xff, 0xff, 0x64, 0xdc, 0xff, 0x80, 0xd3, 0xff, 0x4a, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xf7, 0xff, 0x85, 0xdc, 0xff, 0x43, 0xdc, 0xff, 0xce, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xf6, 0xff, 0x22, 0xd4, 0xff, 0xf8, 0xf6, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6b, 0xe5, 0xff, 0xa6, 0xdc, 0xff, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x64, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0x3a, 0xff, 0xff, 0xcf, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xeb, 0xea, 0xff, 0x96, 0xf5, 0xff, 0x69, 0xea, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x87, 0xe2, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0xa8, 0xd4, 0xff, 0x67, 0xc4, 0xff, 0x47, 0xbc, 0xd6, 0x27, 0xbc, 0xa0, + 0x27, 0xbc, 0x51, 0x47, 0xbc, 0xd1, 0x67, 0xc4, 0xff, 0xa8, 0xd4, 0xff, 0xc8, 0xdc, 0xff, 0xe8, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xef, 0xeb, 0xff, 0xbe, 0xff, 0xff, 0x39, 0xff, 0xff, 0x4b, 0xe5, 0xff, 0x29, 0xe5, 0xff, 0x8d, 0xe5, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbd, 0xff, 0xff, 0x29, 0xe5, 0xff, 0x21, 0xd4, 0xff, 0xce, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf6, 0xff, 0xe0, 0xd3, 0xff, 0x10, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xff, 0xa6, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x84, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0x7c, 0xff, 0xff, 0x9e, 0xff, 0xff, 0xcf, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x48, 0xe4, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0xa8, 0xd4, 0xff, 0x67, 0xc4, 0xff, 0x47, 0xbc, 0xd6, 0x27, 0xbc, 0xa0, + 0x27, 0xbc, 0x51, 0x47, 0xbc, 0xd1, 0x67, 0xc4, 0xff, 0xa8, 0xd4, 0xff, 0xc8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0x08, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xe1, 0xff, 0x51, 0xf4, 0xff, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xce, 0xed, 0xff, 0xe0, 0xd3, 0xff, 0xae, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xf7, 0xff, 0x01, 0xd4, 0xff, 0x2a, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x39, 0xff, 0xff, 0x01, 0xd4, 0xff, 0x29, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x84, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7d, 0xff, 0xff, 0x2a, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x68, 0xe3, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0xa8, 0xd4, 0xff, 0x67, 0xc4, 0xff, 0x47, 0xbc, 0xd6, 0x27, 0xbc, 0xa0, + 0x47, 0xbc, 0x51, 0x47, 0xbc, 0xd1, 0x67, 0xc4, 0xff, 0xa8, 0xd4, 0xff, 0xc8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xa8, 0xdc, 0xff, 0x67, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xe1, 0xff, 0x51, 0xf4, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x94, 0xf6, 0xff, 0xe0, 0xd3, 0xff, 0x8d, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xff, 0xff, 0x64, 0xdc, 0xff, 0x84, 0xdc, 0xff, 0xf8, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xff, 0xf0, 0xed, 0xff, 0xe0, 0xd3, 0xff, 0x4b, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x84, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xc9, 0xdc, 0xff, 0xc5, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xa7, 0xe2, 0xff, 0xc8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0xa8, 0xd4, 0xff, 0x67, 0xc4, 0xff, 0x27, 0xbc, 0xd6, 0x47, 0xbc, 0xa0, + 0x47, 0xbc, 0x51, 0x47, 0xbc, 0xd1, 0x67, 0xc4, 0xff, 0xa8, 0xd4, 0xff, 0xc8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0x69, 0xe4, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe9, 0xe2, 0xff, 0x6e, 0xed, 0xff, 0x6b, 0xe5, 0xff, 0x53, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x22, 0xd4, 0xff, 0x6b, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xf7, 0xff, 0xa6, 0xdc, 0xff, 0xa6, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0x4b, 0xe5, 0xff, 0x2a, 0xe5, 0xff, 0xe8, 0xdc, 0xff, 0x85, 0xdc, 0xff, 0x6b, 0xe5, 0xff, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x84, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6c, 0xe5, 0xff, 0x06, 0xdc, 0xff, 0x28, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x48, 0xe2, 0xff, 0x88, 0xe4, 0xff, 0x08, 0xdd, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0xa8, 0xcc, 0xff, 0x67, 0xc4, 0xff, 0x27, 0xbc, 0xd6, 0x47, 0xbc, 0xa0, + 0x47, 0xbc, 0x51, 0x47, 0xbc, 0xd1, 0x67, 0xc4, 0xff, 0xa8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xe8, 0xdc, 0xff, 0x08, 0xdd, 0xff, 0x09, 0xdd, 0xff, 0xa5, 0xdb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0x43, 0xdb, 0xff, 0xc6, 0xdc, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xff, 0xc7, 0xdc, 0xff, 0x2a, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xf7, 0xff, 0xa6, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0x64, 0xdc, 0xff, 0x85, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0x85, 0xdc, 0xff, 0x4b, 0xe5, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x64, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0xe4, 0xff, 0x47, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x48, 0xe4, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xd4, 0xff, 0xa8, 0xd4, 0xff, 0x67, 0xc4, 0xff, 0x27, 0xbc, 0xd6, 0x47, 0xbc, 0xa0, + 0x47, 0xbc, 0x51, 0x47, 0xbc, 0xd1, 0x67, 0xc4, 0xff, 0xa8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xe8, 0xdc, 0xff, 0x09, 0xdd, 0xff, 0xc7, 0xdc, 0xff, 0x64, 0xdc, 0xff, 0x52, 0xed, 0xff, 0x08, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0xc7, 0xe2, 0xff, 0x56, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xff, 0xff, 0x85, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xdd, 0xff, 0x09, 0xe5, 0xff, 0x09, 0xe5, 0xff, 0x65, 0xdc, 0xff, 0x4a, 0xe5, 0xff, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x64, 0xdc, 0xff, 0xa7, 0xdc, 0xff, 0x7b, 0xff, 0xff, 0xdb, 0xfe, 0xff, 0xcf, 0xeb, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0x48, 0xe4, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xd4, 0xff, 0xa8, 0xd4, 0xff, 0x67, 0xc4, 0xff, 0x27, 0xbc, 0xd6, 0x47, 0xbc, 0xa0, + 0x27, 0xbc, 0x51, 0x47, 0xbc, 0xd1, 0x67, 0xc4, 0xff, 0xa8, 0xcc, 0xff, 0xc8, 0xd4, 0xff, 0xe8, 0xdc, 0xff, 0xe9, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc7, 0xdc, 0xff, 0xad, 0xe5, 0xff, 0xce, 0xec, 0xff, 0x48, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x28, 0xe2, 0xff, 0xcc, 0xeb, 0xff, 0x4f, 0xed, 0xff, 0x4b, 0xe5, 0xff, 0xe8, 0xdc, 0xff, 0xcf, 0xed, 0xff, 0x11, 0xee, 0xff, 0x6c, 0xe5, 0xff, 0xc7, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0x09, 0xdd, 0xff, 0xe7, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xce, 0xe5, 0xff, 0x11, 0xee, 0xff, 0x8d, 0xe5, 0xff, 0xc7, 0xdc, 0xff, 0x27, 0xdc, 0xff, 0x29, 0xe3, 0xff, 0x08, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x48, 0xe2, 0xff, 0x48, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xd4, 0xff, 0xa8, 0xcc, 0xff, 0x67, 0xc4, 0xff, 0x27, 0xbc, 0xd6, 0x47, 0xbc, 0xa0, + 0x26, 0xc4, 0x51, 0x47, 0xbc, 0xd1, 0x67, 0xc4, 0xff, 0xa8, 0xcc, 0xff, 0xc8, 0xd4, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe9, 0xdc, 0xff, 0x09, 0xdd, 0xff, 0xc7, 0xdc, 0xff, 0x85, 0xdc, 0xff, 0x06, 0xdc, 0xff, 0x67, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xe2, 0xff, 0xc8, 0xe3, 0xff, 0x46, 0xdc, 0xff, 0x65, 0xdc, 0xff, 0xa7, 0xdc, 0xff, 0xe9, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe9, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0x86, 0xdc, 0xff, 0x26, 0xdc, 0xff, 0x67, 0xe3, 0xff, 0xa8, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xa7, 0xe2, 0xff, 0x88, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xd4, 0xff, 0xa8, 0xcc, 0xff, 0x67, 0xc4, 0xff, 0x27, 0xbc, 0xd6, 0x27, 0xbc, 0xa0, + 0x27, 0xbc, 0x53, 0x27, 0xbc, 0xd1, 0x67, 0xc4, 0xff, 0x88, 0xcc, 0xff, 0xc8, 0xd4, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xa8, 0xdc, 0xff, 0x08, 0xe3, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x87, 0xe2, 0xff, 0x08, 0xe3, 0xff, 0x68, 0xe3, 0xff, 0xc8, 0xe3, 0xff, 0xe8, 0xe3, 0xff, 0x08, 0xe4, 0xff, 0xe8, 0xe3, 0xff, 0xc8, 0xe3, 0xff, 0x68, 0xe3, 0xff, 0xe8, 0xe2, 0xff, 0x67, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x48, 0xe3, 0xff, 0xc8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xd4, 0xff, 0xa8, 0xcc, 0xff, 0x67, 0xc4, 0xff, 0x27, 0xbc, 0xd7, 0x27, 0xbc, 0xa1, + 0x0d, 0x94, 0x5a, 0x48, 0xbc, 0xd7, 0x66, 0xcc, 0xff, 0xa8, 0xcc, 0xff, 0xc8, 0xd4, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0x08, 0xe4, 0xff, 0x67, 0xe2, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0xa8, 0xe2, 0xff, 0x48, 0xe4, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xd4, 0xff, 0xa8, 0xcc, 0xff, 0x67, 0xc4, 0xff, 0x47, 0xbc, 0xde, 0x47, 0xbc, 0xa9, + 0x49, 0xb4, 0x35, 0x47, 0xbc, 0xc1, 0x47, 0xc4, 0xff, 0x88, 0xcc, 0xff, 0xc8, 0xd4, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0x88, 0xe3, 0xff, 0x67, 0xe2, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x87, 0xe2, 0xff, 0xa8, 0xe3, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0xc8, 0xd4, 0xff, 0x88, 0xcc, 0xff, 0x47, 0xc4, 0xff, 0x47, 0xbc, 0xc8, 0x47, 0xbc, 0x8b, + 0x00, 0x00, 0x00, 0x88, 0xab, 0x7f, 0x27, 0xbc, 0xff, 0xa7, 0xcc, 0xff, 0xa8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xa8, 0xdc, 0xff, 0xa8, 0xdb, 0xff, 0xa8, 0xe2, 0xff, 0x47, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xe2, 0xff, 0xc8, 0xe2, 0xff, 0xc8, 0xdb, 0xff, 0xc8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xe8, 0xdc, 0xff, 0xc8, 0xdc, 0xff, 0xc8, 0xd4, 0xff, 0xa8, 0xd4, 0xff, 0xa7, 0xcc, 0xff, 0x27, 0xbc, 0xff, 0x89, 0xab, 0x84, 0x89, 0xab, 0x2b, + 0x00, 0x00, 0x00, 0x26, 0xc5, 0x19, 0x47, 0xc4, 0xcd, 0xe8, 0xbb, 0xff, 0x87, 0xcc, 0xff, 0xa8, 0xd4, 0xff, 0xa8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0x08, 0xdc, 0xff, 0x68, 0xdb, 0xff, 0xc7, 0xe2, 0xff, 0x87, 0xe2, 0xff, 0x27, 0xe2, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x47, 0xe2, 0xff, 0x87, 0xe2, 0xff, 0xc7, 0xe2, 0xff, 0x88, 0xdb, 0xff, 0x48, 0xdc, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xc8, 0xd4, 0xff, 0xa8, 0xd4, 0xff, 0xa8, 0xd4, 0xff, 0x88, 0xd4, 0xff, 0x87, 0xcc, 0xff, 0xe8, 0xbb, 0xff, 0x47, 0xc4, 0xcd, 0x46, 0xcd, 0x1a, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0xdd, 0x2d, 0xe8, 0xbb, 0xd4, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0x87, 0xcc, 0xff, 0x88, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x65, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x65, 0xd4, 0xff, 0x87, 0xcc, 0xff, 0x88, 0xcc, 0xff, 0x88, 0xcc, 0xff, 0x88, 0xcc, 0xff, 0x28, 0xd4, 0xff, 0xa8, 0xd3, 0xff, 0x07, 0xdb, 0xff, 0xc7, 0xda, 0xff, 0x67, 0xe2, 0xff, 0x47, 0xe2, 0xff, 0x27, 0xe2, 0xff, 0x07, 0xe2, 0xff, 0x27, 0xe2, 0xff, 0x47, 0xe2, 0xff, 0x87, 0xe2, 0xff, 0xe7, 0xda, 0xff, 0x27, 0xdb, 0xff, 0xc8, 0xd3, 0xff, 0x48, 0xcc, 0xff, 0x88, 0xcc, 0xff, 0x88, 0xcc, 0xff, 0x88, 0xcc, 0xff, 0xa8, 0xcc, 0xff, 0x87, 0xcc, 0xff, 0x65, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x66, 0xcc, 0xff, 0x65, 0xd4, 0xff, 0x66, 0xcc, 0xff, 0x88, 0xcc, 0xff, 0x87, 0xcc, 0xff, 0x67, 0xc4, 0xff, 0x67, 0xc4, 0xff, 0xe8, 0xbb, 0xd4, 0x85, 0xdd, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0xc4, 0x19, 0xe8, 0xbb, 0x73, 0x28, 0xbc, 0xb4, 0x48, 0xbc, 0xc3, 0x25, 0xc4, 0xc2, 0x25, 0xc4, 0xac, 0x67, 0xc4, 0x87, 0x47, 0xc4, 0x8a, 0x47, 0xc4, 0x8f, 0x47, 0xc4, 0x8e, 0x47, 0xc4, 0x8e, 0x47, 0xc4, 0x8e, 0x47, 0xc4, 0x8f, 0x67, 0xc4, 0x89, 0x47, 0xc4, 0x8d, 0x24, 0xcc, 0xb1, 0x46, 0xc4, 0xbf, 0x68, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x67, 0xc4, 0xbb, 0x68, 0xc4, 0xbb, 0x47, 0xc4, 0xbe, 0x24, 0xc4, 0xb2, 0x47, 0xc4, 0x8f, 0x67, 0xc4, 0x89, 0x47, 0xc4, 0x8f, 0x47, 0xc4, 0x8e, 0x47, 0xc4, 0x8e, 0x47, 0xc4, 0x8e, 0x47, 0xc4, 0x8f, 0x67, 0xc4, 0x8b, 0x67, 0xc4, 0x86, 0x25, 0xc4, 0xaa, 0x25, 0xc4, 0xc2, 0x68, 0xbc, 0xc3, 0x48, 0xbc, 0xb4, 0xe8, 0xbb, 0x73, 0x86, 0xc4, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xc4, 0x04, 0x66, 0xbc, 0x0b, 0xa0, 0xaa, 0x03, 0x79, 0xad, 0x09, 0xd9, 0xad, 0x27, 0x97, 0xad, 0x23, 0xb7, 0xad, 0x1e, 0x77, 0xb5, 0x1f, 0x77, 0xb5, 0x1f, 0x77, 0xb5, 0x1f, 0xb7, 0xad, 0x1e, 0x97, 0xad, 0x24, 0x79, 0xa5, 0x1f, 0xcd, 0xb4, 0x0a, 0x80, 0xcb, 0x09, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0xa9, 0xbc, 0x07, 0x80, 0xcb, 0x09, 0x8e, 0xac, 0x09, 0xba, 0xad, 0x1e, 0x97, 0xad, 0x24, 0xb7, 0xad, 0x1e, 0x77, 0xb5, 0x1f, 0x77, 0xb5, 0x1f, 0x77, 0xb5, 0x1f, 0xb7, 0xad, 0x1e, 0x97, 0xb5, 0x23, 0x78, 0xa5, 0x27, 0xb6, 0x9d, 0x0a, 0x60, 0xad, 0x03, 0x66, 0xbc, 0x0b, 0x08, 0xc4, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0xad, 0x59, 0xb9, 0xad, 0xff, 0xb9, 0xad, 0xf4, 0xb9, 0xad, 0xea, 0xb9, 0xad, 0xeb, 0xb9, 0xad, 0xeb, 0xb9, 0xad, 0xeb, 0xd9, 0xad, 0xe9, 0xd9, 0xb5, 0xf4, 0x79, 0xa5, 0xec, 0x37, 0x95, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0xad, 0x43, 0xda, 0xad, 0xea, 0xb9, 0xad, 0xf4, 0xb9, 0xad, 0xe9, 0xb9, 0xad, 0xeb, 0xb9, 0xad, 0xeb, 0xb9, 0xad, 0xeb, 0xd9, 0xad, 0xea, 0xda, 0xb5, 0xf4, 0x78, 0xa5, 0xff, 0x7a, 0x9d, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0xad, 0x5c, 0x75, 0xb5, 0xff, 0x96, 0xb5, 0xff, 0x96, 0xb5, 0xff, 0x96, 0xb5, 0xff, 0x96, 0xb5, 0xff, 0x96, 0xb5, 0xff, 0x96, 0xb5, 0xff, 0x96, 0xb5, 0xff, 0xf3, 0x9c, 0xf6, 0x94, 0x8c, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0xad, 0x41, 0x75, 0xb5, 0xf5, 0x96, 0xb5, 0xff, 0x96, 0xb5, 0xff, 0x96, 0xb5, 0xff, 0x96, 0xb5, 0xff, 0x96, 0xb5, 0xff, 0x96, 0xb5, 0xff, 0x96, 0xb5, 0xff, 0xf4, 0xa4, 0xff, 0xd3, 0x9c, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xc6, 0x04, 0x14, 0xa5, 0x88, 0x15, 0xa5, 0xee, 0x35, 0xa5, 0xe7, 0x35, 0xa5, 0xdf, 0x35, 0xa5, 0xdf, 0x35, 0xa5, 0xde, 0x35, 0xa5, 0xe9, 0xf4, 0x9c, 0xe3, 0xb3, 0x94, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0xa5, 0x63, 0x15, 0xa5, 0xe4, 0x35, 0xa5, 0xea, 0x35, 0xa5, 0xde, 0x35, 0xa5, 0xdf, 0x35, 0xa5, 0xdf, 0x35, 0xa5, 0xe7, 0x14, 0xa5, 0xed, 0xb3, 0x94, 0x86, 0x10, 0x84, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#endif +#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP != 0 + /*Pixel format: Alpha 8 bit, Red: 5 bit, Green: 6 bit, Blue: 5 bit BUT the 2 color bytes are swapped*/ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x6a, 0x46, 0xed, 0x4a, 0xb5, 0xed, 0x4a, 0xed, 0xed, 0x4a, 0xf5, 0xed, 0x4a, 0xf0, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xef, 0xed, 0x4a, 0xf1, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xeb, 0xed, 0x4a, 0xb4, 0xed, 0x4a, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x6a, 0x75, 0xed, 0x4a, 0xff, 0xed, 0x4a, 0xff, 0xed, 0x4a, 0xf9, 0xed, 0x4a, 0xf1, 0xed, 0x4a, 0xf3, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf4, 0xed, 0x4a, 0xf3, 0xed, 0x4a, 0xf1, 0xed, 0x4a, 0xf9, 0xed, 0x4a, 0xff, 0xed, 0x4a, 0xff, 0xed, 0x4a, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x4a, 0x58, 0xed, 0x4a, 0xff, 0xed, 0x4a, 0xff, 0xed, 0x4a, 0x9f, 0xed, 0x4a, 0x3e, 0xed, 0x6a, 0x33, 0xed, 0x4a, 0x3a, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x4a, 0x3b, 0xed, 0x6a, 0x39, 0xed, 0x6a, 0x33, 0xed, 0x4a, 0x3e, 0xed, 0x4a, 0x9f, 0xed, 0x4a, 0xff, 0xed, 0x4a, 0xff, 0xed, 0x6a, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x8a, 0x13, 0xed, 0x4a, 0xbe, 0xe5, 0x4a, 0xff, 0xed, 0x4a, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x4a, 0x92, 0xed, 0x4a, 0xff, 0xed, 0x4a, 0xbf, 0xed, 0x8a, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x2a, 0x2f, 0xed, 0x6a, 0xff, 0xed, 0x6a, 0xef, 0xfd, 0xcb, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0xcb, 0x31, 0xed, 0x6a, 0xef, 0xed, 0x4a, 0xff, 0xe5, 0x2a, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xe0, 0x01, 0xad, 0x6b, 0x03, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x00, 0x00, 0x00, 0xd4, 0xc8, 0x38, 0xf5, 0x8b, 0xff, 0xfd, 0xcb, 0xd9, 0xcc, 0xa9, 0x1d, 0x00, 0x00, 0x00, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x00, 0x00, 0x00, 0xd4, 0xa9, 0x1d, 0xfd, 0xcb, 0xd9, 0xf5, 0xab, 0xff, 0xd4, 0xc8, 0x39, 0x00, 0x00, 0x00, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0xad, 0x6b, 0x03, 0xff, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0xe7, 0x0d, 0xc4, 0x67, 0x5a, 0xc4, 0x27, 0x94, 0xc4, 0x67, 0x9f, 0xc4, 0x47, 0x9c, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xbc, 0x47, 0x8f, 0xc4, 0x67, 0xaf, 0xd4, 0xc9, 0xff, 0xd4, 0xa8, 0xf2, 0xbc, 0x06, 0x9c, 0xbc, 0x27, 0x8e, 0xc4, 0x47, 0x9b, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9b, 0xbc, 0x27, 0x8e, 0xbc, 0x06, 0x9c, 0xd4, 0xa8, 0xf2, 0xd4, 0xc9, 0xff, 0xc4, 0x47, 0xaf, 0xbc, 0x47, 0x8f, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9a, 0xc4, 0x47, 0x9c, 0xc4, 0x47, 0x9f, 0xc4, 0x27, 0x94, 0xc4, 0x67, 0x5a, 0xcc, 0xe7, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd5, 0x46, 0x1a, 0xc4, 0x28, 0xbb, 0xc4, 0x67, 0xff, 0xc4, 0x47, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xcc, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xbc, 0x27, 0xff, 0xbc, 0x27, 0xff, 0xc4, 0x67, 0xff, 0xcc, 0x88, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xcc, 0x88, 0xff, 0xc4, 0x67, 0xff, 0xbc, 0x47, 0xff, 0xbc, 0x47, 0xff, 0xc4, 0x67, 0xff, 0xcc, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x47, 0xff, 0xc4, 0x27, 0xff, 0xc4, 0x67, 0xff, 0xbc, 0x28, 0xbb, 0xd5, 0x85, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xd5, 0x66, 0x0f, 0xc4, 0xa7, 0xc0, 0xbb, 0xe8, 0xff, 0xc4, 0x67, 0xff, 0xd4, 0xa8, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x29, 0xff, 0xe5, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0x88, 0xff, 0xe3, 0xe8, 0xff, 0xe3, 0x48, 0xff, 0xe2, 0xe8, 0xff, 0xe2, 0x88, 0xff, 0xe2, 0x47, 0xff, 0xe2, 0x27, 0xff, 0xe2, 0x27, 0xff, 0xe2, 0x27, 0xff, 0xe2, 0x47, 0xff, 0xe2, 0xa8, 0xff, 0xe3, 0x08, 0xff, 0xe3, 0x68, 0xff, 0xe4, 0x28, 0xff, 0xe4, 0xa8, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x28, 0xff, 0xe5, 0x28, 0xff, 0xe5, 0x29, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xcc, 0xa8, 0xff, 0xc4, 0x67, 0xff, 0xbb, 0xc8, 0xff, 0xcc, 0xc6, 0xc0, 0xbc, 0xc9, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc4, 0x47, 0x76, 0xc4, 0x28, 0xff, 0xc4, 0x67, 0xff, 0xd4, 0xc8, 0xff, 0xdd, 0x08, 0xff, 0xbc, 0x27, 0xff, 0xa3, 0x86, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0x86, 0xff, 0xbb, 0x27, 0xff, 0xca, 0xa7, 0xff, 0xda, 0x27, 0xff, 0xda, 0x07, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xda, 0x27, 0xff, 0xda, 0x47, 0xff, 0xca, 0xa7, 0xff, 0xb3, 0x27, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0xa6, 0xff, 0xa3, 0x86, 0xff, 0xbc, 0x27, 0xff, 0xe5, 0x08, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x27, 0xff, 0xbc, 0x28, 0x7a, 0xbc, 0x28, 0x1f, + 0xbc, 0x29, 0x2d, 0xc4, 0x28, 0xbc, 0xc4, 0x67, 0xff, 0xd4, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0x82, 0xe5, 0xff, 0x49, 0xa3, 0xff, 0x49, 0xc3, 0xff, 0x51, 0xc3, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x61, 0xc4, 0xff, 0x99, 0xe5, 0xff, 0xc9, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xc9, 0xe7, 0xff, 0x91, 0xe5, 0xff, 0x59, 0xe4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc3, 0xff, 0x49, 0xc3, 0xff, 0x49, 0xa3, 0xff, 0x82, 0xe5, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x47, 0xc4, 0xc4, 0x67, 0x84, + 0xa4, 0x2c, 0x55, 0xbc, 0x48, 0xd4, 0xd4, 0x87, 0xff, 0xed, 0x29, 0xff, 0xa3, 0xa6, 0xff, 0x41, 0x63, 0xff, 0x49, 0xc3, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x6a, 0x04, 0xff, 0xa9, 0xe6, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0xa2, 0x06, 0xff, 0x62, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x5a, 0x04, 0xff, 0x49, 0xc3, 0xff, 0x41, 0x63, 0xff, 0xa3, 0xa6, 0xff, 0xed, 0x29, 0xff, 0xcc, 0x88, 0xff, 0xc4, 0x67, 0xda, 0xc4, 0x67, 0xa4, + 0xbc, 0x48, 0x52, 0xc4, 0x47, 0xd1, 0xd4, 0xc8, 0xff, 0xed, 0x49, 0xff, 0x82, 0xe5, 0xff, 0x41, 0x83, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x44, 0xff, 0x9a, 0x26, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x92, 0x25, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x41, 0x83, 0xff, 0x82, 0xe5, 0xff, 0xed, 0x49, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x47, 0xd7, 0xc4, 0x67, 0xa1, + 0xcc, 0x67, 0x51, 0xc4, 0x67, 0xd1, 0xd4, 0xc8, 0xff, 0xed, 0x49, 0xff, 0x82, 0xe5, 0xff, 0x41, 0x83, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x7a, 0x25, 0xff, 0xc1, 0xe6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xba, 0x06, 0xff, 0xaa, 0x06, 0xff, 0x92, 0x25, 0xff, 0x8a, 0x25, 0xff, 0x82, 0x25, 0xff, 0x7a, 0x25, 0xff, 0x82, 0x25, 0xff, 0x8a, 0x25, 0xff, 0x9a, 0x25, 0xff, 0xaa, 0x06, 0xff, 0xc2, 0x06, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb2, 0x06, 0xff, 0x72, 0x25, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x41, 0x83, 0xff, 0x82, 0xe5, 0xff, 0xed, 0x49, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x67, 0xa0, + 0xc4, 0x68, 0x51, 0xc4, 0x67, 0xd1, 0xd4, 0xc8, 0xff, 0xed, 0x49, 0xff, 0x82, 0xe5, 0xff, 0x41, 0x83, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x8a, 0x25, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xb2, 0x06, 0xff, 0x8a, 0x25, 0xff, 0x6a, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x92, 0x25, 0xff, 0xb2, 0x06, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xc9, 0xe7, 0xff, 0x7a, 0x25, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x62, 0x24, 0xff, 0x41, 0x83, 0xff, 0x82, 0xe5, 0xff, 0xed, 0x49, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x67, 0xd6, 0xc4, 0x67, 0xa0, + 0xc4, 0x67, 0x51, 0xc4, 0x47, 0xd1, 0xd4, 0xc8, 0xff, 0xed, 0x49, 0xff, 0x82, 0xe5, 0xff, 0x41, 0xa3, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x9a, 0x05, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0xa2, 0x06, 0xff, 0x72, 0x45, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x7a, 0x45, 0xff, 0xaa, 0x26, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x8a, 0x25, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x41, 0xa3, 0xff, 0x82, 0xe5, 0xff, 0xed, 0x49, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x67, 0xa0, + 0xc4, 0x67, 0x51, 0xc4, 0x47, 0xd1, 0xd4, 0xc8, 0xff, 0xed, 0x49, 0xff, 0x83, 0x05, 0xff, 0x41, 0x83, 0xff, 0x62, 0x24, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x9a, 0x05, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0xa2, 0x06, 0xff, 0x72, 0x45, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x44, 0xff, 0x62, 0x44, 0xff, 0x72, 0x45, 0xff, 0xb2, 0x06, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x8a, 0x25, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x24, 0xff, 0x41, 0x83, 0xff, 0x83, 0x05, 0xff, 0xed, 0x49, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x67, 0xa0, + 0xc4, 0x67, 0x51, 0xc4, 0x47, 0xd1, 0xd4, 0xc8, 0xff, 0xed, 0x49, 0xff, 0x83, 0x05, 0xff, 0x49, 0xa3, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x9a, 0x26, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xba, 0x06, 0xff, 0x82, 0x45, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x65, 0xff, 0x62, 0x24, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x24, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x65, 0xff, 0x62, 0x44, 0xff, 0x62, 0x23, 0xff, 0x6a, 0x44, 0xff, 0x62, 0x23, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x65, 0xff, 0x62, 0x24, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x5a, 0x23, 0xff, 0x6a, 0x65, 0xff, 0x92, 0x45, 0xff, 0xc9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0x8a, 0x25, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x49, 0xa3, 0xff, 0x83, 0x05, 0xff, 0xed, 0x49, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x67, 0xa0, + 0xc4, 0x67, 0x51, 0xc4, 0x47, 0xd1, 0xd4, 0xc8, 0xff, 0xed, 0x49, 0xff, 0x83, 0x05, 0xff, 0x49, 0xa3, 0xff, 0x62, 0x44, 0xff, 0x8a, 0x25, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x79, 0xc3, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x85, 0xff, 0x62, 0x23, 0xff, 0x49, 0x40, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x65, 0xff, 0x49, 0x61, 0xff, 0x62, 0x24, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x85, 0xff, 0x51, 0xa1, 0xff, 0x59, 0xc2, 0xff, 0x7a, 0xc6, 0xff, 0x59, 0xc2, 0xff, 0x49, 0x81, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x62, 0x24, 0xff, 0x49, 0x81, 0xff, 0x6a, 0x64, 0xff, 0x72, 0xa5, 0xff, 0x49, 0x60, 0xff, 0x5a, 0x03, 0xff, 0x6a, 0x85, 0xff, 0x7a, 0x45, 0xff, 0xba, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x82, 0x45, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x49, 0xa3, 0xff, 0x82, 0xe5, 0xff, 0xed, 0x49, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x67, 0xa0, + 0xc4, 0x67, 0x51, 0xc4, 0x47, 0xd1, 0xd4, 0xc8, 0xff, 0xed, 0x49, 0xff, 0x82, 0xe5, 0xff, 0x49, 0xa3, 0xff, 0x7a, 0x25, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd2, 0x07, 0xff, 0x79, 0xa3, 0xff, 0x72, 0x85, 0xff, 0x5a, 0x03, 0xff, 0x59, 0xc2, 0xff, 0xc5, 0x2f, 0xff, 0x6a, 0xe9, 0xff, 0x6a, 0xe9, 0xff, 0xac, 0x8d, 0xff, 0x62, 0x03, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x85, 0xff, 0x49, 0x81, 0xff, 0x83, 0x27, 0xff, 0xac, 0xcf, 0xff, 0x39, 0xa6, 0xff, 0xac, 0xcf, 0xff, 0x93, 0x88, 0xff, 0x49, 0x61, 0xff, 0x6a, 0x85, 0xff, 0x62, 0x44, 0xff, 0x59, 0xe2, 0xff, 0xb4, 0xad, 0xff, 0x6a, 0xea, 0xff, 0x4a, 0x27, 0xff, 0xc5, 0x50, 0xff, 0x62, 0x03, 0xff, 0x5a, 0x03, 0xff, 0x72, 0xa5, 0xff, 0x61, 0xc3, 0xff, 0xb2, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc9, 0xe7, 0xff, 0x6a, 0x45, 0xff, 0x62, 0x44, 0xff, 0x49, 0xa3, 0xff, 0x82, 0xe5, 0xff, 0xed, 0x49, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x67, 0xa0, + 0xc4, 0x67, 0x51, 0xc4, 0x47, 0xd1, 0xd4, 0xc8, 0xff, 0xed, 0x49, 0xff, 0x82, 0xe5, 0xff, 0x49, 0xa3, 0xff, 0xc2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xc6, 0xff, 0x81, 0xe4, 0xff, 0x49, 0x60, 0xff, 0x9c, 0x2c, 0xff, 0xff, 0xff, 0xff, 0x6b, 0x0a, 0xff, 0x73, 0x2a, 0xff, 0xff, 0xfd, 0xff, 0x9b, 0xeb, 0xff, 0x59, 0xe2, 0xff, 0x5a, 0x03, 0xff, 0x59, 0xc1, 0xff, 0xee, 0xd8, 0xff, 0xdf, 0x1b, 0xff, 0x18, 0xc3, 0xff, 0xce, 0x78, 0xff, 0xef, 0x1a, 0xff, 0x62, 0x03, 0xff, 0x59, 0xc2, 0xff, 0x59, 0xe2, 0xff, 0x93, 0xca, 0xff, 0xff, 0xfe, 0xff, 0x63, 0x0b, 0xff, 0x39, 0xc6, 0xff, 0xff, 0xff, 0xff, 0xac, 0x8e, 0xff, 0x51, 0xa1, 0xff, 0x5a, 0x03, 0xff, 0x51, 0x61, 0xff, 0xcd, 0x71, 0xff, 0xf4, 0x50, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb2, 0x06, 0xff, 0x62, 0x44, 0xff, 0x49, 0xa3, 0xff, 0x82, 0xe5, 0xff, 0xed, 0x49, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x67, 0xa0, + 0xc4, 0x67, 0x51, 0xc4, 0x47, 0xd1, 0xd4, 0xc8, 0xff, 0xed, 0x49, 0xff, 0x82, 0xe5, 0xff, 0x89, 0xc5, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0xaa, 0xff, 0xe1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xc6, 0xff, 0x81, 0xc3, 0xff, 0xcd, 0xd3, 0xff, 0xff, 0xfc, 0xff, 0xd6, 0x14, 0xff, 0xd6, 0x34, 0xff, 0xff, 0xba, 0xff, 0xc5, 0x51, 0xff, 0x59, 0xe3, 0xff, 0x49, 0x81, 0xff, 0x83, 0x28, 0xff, 0xff, 0xba, 0xff, 0xf7, 0x38, 0xff, 0xc5, 0x92, 0xff, 0xf7, 0x18, 0xff, 0xff, 0xdc, 0xff, 0x8b, 0x69, 0xff, 0x49, 0x40, 0xff, 0x59, 0xc2, 0xff, 0xbd, 0x51, 0xff, 0xff, 0xfb, 0xff, 0xd6, 0x13, 0xff, 0xcd, 0xd3, 0xff, 0xff, 0xbb, 0xff, 0xde, 0x35, 0xff, 0x62, 0x03, 0xff, 0x49, 0x40, 0xff, 0x6a, 0x45, 0xff, 0xee, 0xf8, 0xff, 0xff, 0x59, 0xff, 0xdb, 0x0b, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x8a, 0x25, 0xff, 0x49, 0xa3, 0xff, 0x82, 0xe5, 0xff, 0xed, 0x49, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x67, 0xa0, + 0xc4, 0x67, 0x51, 0xc4, 0x47, 0xd1, 0xd4, 0xc8, 0xff, 0xed, 0x49, 0xff, 0x8a, 0xe5, 0xff, 0xd9, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xca, 0x27, 0xff, 0xed, 0xd4, 0xff, 0xf4, 0x0e, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0xc4, 0x0d, 0xff, 0xff, 0x79, 0xff, 0xff, 0x99, 0xff, 0xff, 0x79, 0xff, 0xff, 0x38, 0xff, 0xac, 0x8e, 0xff, 0x59, 0xe3, 0xff, 0x51, 0xc2, 0xff, 0x72, 0xa6, 0xff, 0xee, 0x96, 0xff, 0xff, 0x99, 0xff, 0xff, 0xb9, 0xff, 0xff, 0x99, 0xff, 0xf6, 0xf7, 0xff, 0x72, 0xc7, 0xff, 0x51, 0x81, 0xff, 0x59, 0xc2, 0xff, 0xa4, 0x6d, 0xff, 0xff, 0x18, 0xff, 0xff, 0x78, 0xff, 0xff, 0xb9, 0xff, 0xff, 0x79, 0xff, 0xbd, 0x30, 0xff, 0x59, 0xe3, 0xff, 0x51, 0xa1, 0xff, 0x5a, 0x03, 0xff, 0xde, 0x14, 0xff, 0xff, 0x9a, 0xff, 0xfe, 0xf7, 0xff, 0xea, 0xaa, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc9, 0xe7, 0xff, 0x49, 0xa3, 0xff, 0x82, 0xe5, 0xff, 0xed, 0x49, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x67, 0xa0, + 0xc4, 0x67, 0x51, 0xc4, 0x47, 0xd1, 0xd4, 0xc8, 0xff, 0xed, 0x49, 0xff, 0xba, 0x46, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x71, 0xe4, 0xff, 0xa4, 0x4d, 0xff, 0xee, 0x56, 0xff, 0xeb, 0x8d, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xd4, 0xb0, 0xff, 0xff, 0x39, 0xff, 0xf6, 0xf8, 0xff, 0xc5, 0x72, 0xff, 0x6a, 0x85, 0xff, 0x62, 0x23, 0xff, 0x6a, 0x64, 0xff, 0x51, 0xa2, 0xff, 0x93, 0xcb, 0xff, 0xee, 0xd7, 0xff, 0xff, 0x39, 0xff, 0xf6, 0xf8, 0xff, 0x9c, 0x0c, 0xff, 0x51, 0xa2, 0xff, 0x62, 0x24, 0xff, 0x62, 0x23, 0xff, 0x62, 0x44, 0xff, 0xc5, 0x51, 0xff, 0xf7, 0x18, 0xff, 0xff, 0x39, 0xff, 0xd5, 0xf4, 0xff, 0x6a, 0xa6, 0xff, 0x59, 0xe2, 0xff, 0x6a, 0x64, 0xff, 0x51, 0xa2, 0xff, 0x83, 0x48, 0xff, 0xe6, 0x76, 0xff, 0xff, 0x39, 0xff, 0xed, 0x73, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x91, 0xc5, 0xff, 0x82, 0xe5, 0xff, 0xed, 0x49, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x67, 0xa0, + 0xc4, 0x67, 0x51, 0xc4, 0x47, 0xd1, 0xd4, 0xc8, 0xff, 0xec, 0xe9, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xaa, 0x26, 0xff, 0x5a, 0x03, 0xff, 0x59, 0xe3, 0xff, 0x7b, 0x28, 0xff, 0x9b, 0xab, 0xff, 0xc2, 0x27, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xa3, 0x2a, 0xff, 0x8b, 0xaa, 0xff, 0x62, 0x45, 0xff, 0x59, 0xe3, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x62, 0x24, 0xff, 0x51, 0xc2, 0xff, 0x72, 0xe7, 0xff, 0x93, 0xec, 0xff, 0x7b, 0x08, 0xff, 0x51, 0xc2, 0xff, 0x62, 0x23, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x64, 0xff, 0x59, 0xe3, 0xff, 0x62, 0x24, 0xff, 0x8b, 0x8a, 0xff, 0x93, 0xcb, 0xff, 0x62, 0x65, 0xff, 0x51, 0xc2, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x62, 0x44, 0xff, 0x51, 0xc2, 0xff, 0x6a, 0xa6, 0xff, 0x93, 0xcb, 0xff, 0x7b, 0x28, 0xff, 0xb1, 0xe6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc9, 0xc7, 0xff, 0x8a, 0xe5, 0xff, 0xed, 0x49, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x67, 0xa0, + 0xc4, 0x67, 0x51, 0xc4, 0x47, 0xd1, 0xd4, 0xc8, 0xff, 0xeb, 0x88, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x6a, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x24, 0xff, 0x49, 0xa2, 0xff, 0x49, 0x61, 0xff, 0x59, 0xc3, 0xff, 0xba, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xc7, 0xff, 0x71, 0xa3, 0xff, 0x59, 0xe3, 0xff, 0x62, 0x45, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x65, 0xff, 0x62, 0x44, 0xff, 0x51, 0xa2, 0xff, 0x49, 0x61, 0xff, 0x51, 0xa2, 0xff, 0x62, 0x24, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x45, 0xff, 0x5a, 0x03, 0xff, 0x49, 0x81, 0xff, 0x49, 0x61, 0xff, 0x59, 0xe3, 0xff, 0x62, 0x45, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x62, 0x44, 0xff, 0x51, 0xc2, 0xff, 0x49, 0x61, 0xff, 0x49, 0xa2, 0xff, 0x6a, 0x04, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xaa, 0x86, 0xff, 0xed, 0x29, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x67, 0xa0, + 0xc4, 0x67, 0x51, 0xc4, 0x47, 0xd1, 0xd4, 0xa8, 0xff, 0xe2, 0x48, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x9a, 0x26, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x62, 0x65, 0xff, 0x62, 0x65, 0xff, 0x6a, 0x44, 0xff, 0xc2, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x8a, 0x25, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x62, 0x65, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x45, 0xff, 0x62, 0x65, 0xff, 0x62, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x64, 0xff, 0x62, 0x45, 0xff, 0x62, 0x65, 0xff, 0x62, 0x44, 0xff, 0xb2, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xca, 0x27, 0xff, 0xed, 0x29, 0xff, 0xd4, 0xc8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x67, 0xa0, + 0xc4, 0x67, 0x51, 0xc4, 0x47, 0xd2, 0xdb, 0xc8, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x6a, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x62, 0x64, 0xff, 0x6a, 0x64, 0xff, 0xc2, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x8a, 0x25, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x62, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x72, 0x45, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x07, 0xff, 0xec, 0x68, 0xff, 0xd4, 0xa8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x47, 0xa0, + 0xc4, 0x47, 0x51, 0xc4, 0x47, 0xd2, 0xdb, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb2, 0x06, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0xc2, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x8a, 0x25, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0xc1, 0xe6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xeb, 0xa8, 0xff, 0xd4, 0xa8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x47, 0xa0, + 0xc4, 0x47, 0x51, 0xc3, 0xe7, 0xd7, 0xe2, 0x67, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x82, 0x25, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0xc2, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x8a, 0x25, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x62, 0x44, 0xff, 0x92, 0x25, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0xe8, 0xff, 0xd4, 0x68, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x47, 0xa0, + 0xc4, 0x47, 0x51, 0xcb, 0x67, 0xe1, 0xe2, 0x27, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x44, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x65, 0xff, 0xc2, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x8a, 0x45, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x72, 0x45, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x88, 0xff, 0xdb, 0xa8, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x47, 0xa0, + 0xc4, 0x67, 0x51, 0xd2, 0xe7, 0xea, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb9, 0xc6, 0xff, 0x49, 0xc4, 0xff, 0x49, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc3, 0xff, 0x51, 0xe3, 0xff, 0x51, 0xe3, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xe4, 0xff, 0xb9, 0xe6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x79, 0xc5, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xe4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xe3, 0xff, 0x51, 0xe3, 0xff, 0x51, 0xc3, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0x51, 0xc4, 0xff, 0xc9, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xdb, 0x28, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x47, 0xa0, + 0xc4, 0x67, 0x51, 0xda, 0x87, 0xf1, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xaa, 0x26, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x64, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x72, 0x85, 0xff, 0xc2, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x92, 0x45, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x85, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x6a, 0x65, 0xff, 0x72, 0x65, 0xff, 0xba, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xe2, 0xc7, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x47, 0xa0, + 0xc4, 0x47, 0x51, 0xda, 0x47, 0xf5, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe3, 0xe8, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x09, 0xff, 0xe2, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xec, 0x28, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xed, 0x29, 0xff, 0xe3, 0x88, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x67, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x47, 0xa0, + 0xc4, 0x47, 0x51, 0xe2, 0x27, 0xf9, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xf4, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x49, 0xff, 0xea, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x48, 0xff, 0xf4, 0x68, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xf5, 0x69, 0xff, 0xec, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x47, 0xa0, + 0xc4, 0x47, 0x51, 0xe2, 0x07, 0xfb, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe4, 0x68, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0xc8, 0xff, 0xe2, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xe4, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x47, 0xa0, + 0xc4, 0x47, 0x51, 0xe2, 0x07, 0xfc, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe4, 0x68, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0xc8, 0xff, 0xe2, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xe4, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0x28, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x47, 0xa0, + 0xc4, 0x47, 0x51, 0xe2, 0x07, 0xfa, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe4, 0x48, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0xc8, 0xff, 0xe2, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xe4, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x47, 0xa0, + 0xc4, 0x47, 0x51, 0xe2, 0x27, 0xf8, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe4, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0xc8, 0xff, 0xe2, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe3, 0xc8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x47, 0xa0, + 0xc4, 0x47, 0x51, 0xda, 0x47, 0xf4, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe3, 0xc8, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0xc8, 0xff, 0xe2, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe3, 0x68, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x67, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x47, 0xa0, + 0xc4, 0x47, 0x51, 0xda, 0xa7, 0xef, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe3, 0x48, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe4, 0xe7, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0xc6, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x08, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0xc7, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe4, 0xc8, 0xff, 0xe2, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0x28, 0xff, 0xe5, 0x09, 0xff, 0xe4, 0xe7, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0xc7, 0xff, 0xe4, 0xe7, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0xe8, 0xff, 0xe3, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xda, 0xc7, 0xff, 0xc4, 0x47, 0xd6, 0xc4, 0x47, 0xa0, + 0xbc, 0x47, 0x51, 0xd2, 0xe7, 0xe9, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0xa8, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe4, 0xe8, 0xff, 0xdc, 0xa6, 0xff, 0xdc, 0xc7, 0xff, 0xe4, 0xe7, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0xa6, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x29, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x09, 0xff, 0xe4, 0xe8, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0xc6, 0xff, 0xe4, 0xe7, 0xff, 0xe5, 0x29, 0xff, 0xe5, 0x09, 0xff, 0xe4, 0xe9, 0xff, 0xe2, 0xc8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0x28, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0x85, 0xff, 0xdc, 0x84, 0xff, 0xe4, 0xe8, 0xff, 0xe5, 0x29, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0xe8, 0xff, 0xe2, 0x67, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xd3, 0x28, 0xff, 0xc4, 0x47, 0xd6, 0xbc, 0x47, 0xa0, + 0xbc, 0x47, 0x51, 0xcb, 0x67, 0xe0, 0xe2, 0x27, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0xe8, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0xe8, 0xff, 0xe4, 0xe7, 0xff, 0xf6, 0x94, 0xff, 0xff, 0x5b, 0xff, 0xff, 0x39, 0xff, 0xff, 0x5a, 0xff, 0xed, 0xef, 0xff, 0xdc, 0xa6, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x29, 0xff, 0xdc, 0xc6, 0xff, 0xe5, 0x6b, 0xff, 0xff, 0x19, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x39, 0xff, 0xe5, 0x4a, 0xff, 0xdc, 0xa5, 0xff, 0xe5, 0x29, 0xff, 0xe5, 0x08, 0xff, 0xdc, 0x65, 0xff, 0xeb, 0x2a, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xed, 0x51, 0xff, 0xff, 0x7b, 0xff, 0xff, 0x39, 0xff, 0xff, 0x39, 0xff, 0xff, 0x39, 0xff, 0xff, 0x39, 0xff, 0xff, 0x19, 0xff, 0xf6, 0xf7, 0xff, 0xed, 0xad, 0xff, 0xdc, 0x85, 0xff, 0xe4, 0xe8, 0xff, 0xe5, 0x09, 0xff, 0xe4, 0x88, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x87, 0xff, 0xd3, 0xa7, 0xff, 0xc4, 0x47, 0xd6, 0xbc, 0x47, 0xa0, + 0xbc, 0x47, 0x51, 0xc4, 0x07, 0xd6, 0xe2, 0x67, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xe4, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xdc, 0xc6, 0xff, 0xe5, 0x6c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0xc6, 0xff, 0xe5, 0x2a, 0xff, 0xdc, 0x85, 0xff, 0xed, 0xce, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x53, 0xff, 0xdc, 0x43, 0xff, 0xe5, 0x08, 0xff, 0xdc, 0xa6, 0xff, 0xe4, 0xe7, 0xff, 0xff, 0x7c, 0xff, 0xeb, 0xaf, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0x6a, 0xff, 0xfe, 0x59, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xee, 0x31, 0xff, 0xdc, 0xa6, 0xff, 0xe5, 0x09, 0xff, 0xe3, 0xc8, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0xe8, 0xff, 0xcc, 0x27, 0xff, 0xc4, 0x47, 0xd6, 0xbc, 0x47, 0xa0, + 0xbc, 0x47, 0x51, 0xc4, 0x47, 0xd2, 0xdb, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0xe8, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xe5, 0x08, 0xff, 0xdc, 0xa5, 0xff, 0xee, 0x31, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xe5, 0x6b, 0xff, 0xdc, 0x85, 0xff, 0xe5, 0x2a, 0xff, 0xdc, 0x85, 0xff, 0xed, 0xae, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x39, 0xff, 0xdc, 0xa5, 0xff, 0xdc, 0xc6, 0xff, 0xdc, 0x64, 0xff, 0xed, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xaf, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0x8a, 0xff, 0xfe, 0x59, 0xff, 0xff, 0x7c, 0xff, 0xff, 0x5a, 0xff, 0xff, 0x3a, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdd, 0xff, 0xe5, 0x2a, 0xff, 0xdc, 0xa6, 0xff, 0xe2, 0xa8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xdb, 0x68, 0xff, 0xcc, 0x67, 0xff, 0xc4, 0x47, 0xd6, 0xbc, 0x47, 0xa0, + 0xbc, 0x47, 0x51, 0xc4, 0x47, 0xd1, 0xd3, 0xc7, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0xc8, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0xe8, 0xff, 0xdc, 0xa6, 0xff, 0xf6, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbd, 0xff, 0xff, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xee, 0x31, 0xff, 0xdc, 0x84, 0xff, 0xe5, 0x09, 0xff, 0xdc, 0xa5, 0xff, 0xed, 0xae, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xe5, 0x4b, 0xff, 0xdc, 0x64, 0xff, 0xdc, 0x84, 0xff, 0xf6, 0x74, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xeb, 0xae, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0x8a, 0xff, 0xe4, 0x6a, 0xff, 0xdc, 0x85, 0xff, 0xdc, 0xc6, 0xff, 0xe4, 0xe8, 0xff, 0xff, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xce, 0xff, 0xdc, 0x05, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xd4, 0x28, 0xff, 0xcc, 0x67, 0xff, 0xc4, 0x47, 0xd6, 0xbc, 0x47, 0xa0, + 0xbc, 0x47, 0x51, 0xc4, 0x47, 0xd1, 0xcc, 0x67, 0xff, 0xe2, 0x47, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe3, 0x28, 0xff, 0xe5, 0x08, 0xff, 0xe4, 0xe7, 0xff, 0xe5, 0x09, 0xff, 0xff, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xff, 0xed, 0xad, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xd6, 0xff, 0xdc, 0x85, 0xff, 0xe4, 0xe8, 0xff, 0xdc, 0xa5, 0xff, 0xed, 0xad, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x39, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xee, 0x11, 0xff, 0xdc, 0x21, 0xff, 0xdc, 0xc6, 0xff, 0xff, 0x5a, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xeb, 0x8d, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x48, 0xff, 0xdb, 0xa4, 0xff, 0xdc, 0xa5, 0xff, 0xdc, 0x63, 0xff, 0xf7, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xcf, 0xff, 0xe2, 0xe6, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0xc8, 0xff, 0xd4, 0xa8, 0xff, 0xcc, 0x67, 0xff, 0xc4, 0x47, 0xd6, 0xbc, 0x47, 0xa0, + 0xbc, 0x47, 0x51, 0xc4, 0x47, 0xd1, 0xcc, 0x67, 0xff, 0xdb, 0x68, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0xa9, 0xff, 0xdc, 0xa6, 0xff, 0xe5, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x95, 0xff, 0xdc, 0x85, 0xff, 0xff, 0x5b, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7b, 0xff, 0xdc, 0xe7, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0xa6, 0xff, 0xed, 0xad, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xb5, 0xff, 0xf6, 0xb6, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x18, 0xff, 0xd4, 0x22, 0xff, 0xe5, 0x29, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbd, 0xff, 0xee, 0x10, 0xff, 0xff, 0x5a, 0xff, 0xff, 0xff, 0xff, 0xff, 0x39, 0xff, 0xe2, 0xa6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0x07, 0xff, 0xdc, 0x64, 0xff, 0xf6, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0x2d, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xdb, 0xc8, 0xff, 0xd4, 0xa8, 0xff, 0xcc, 0x67, 0xff, 0xc4, 0x47, 0xd6, 0xbc, 0x47, 0xa0, + 0xbc, 0x47, 0x51, 0xc4, 0x47, 0xd1, 0xc4, 0x67, 0xff, 0xd4, 0x68, 0xff, 0xe2, 0x27, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe3, 0x28, 0xff, 0xdc, 0xa5, 0xff, 0xee, 0x31, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xee, 0x32, 0xff, 0xd4, 0x00, 0xff, 0xff, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x8c, 0xff, 0xdc, 0x85, 0xff, 0xdc, 0xa5, 0xff, 0xed, 0xae, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x74, 0xff, 0xed, 0xad, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xdc, 0x84, 0xff, 0xed, 0xce, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xff, 0xe5, 0x6b, 0xff, 0xff, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xdc, 0x64, 0xff, 0xe2, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xdb, 0xa4, 0xff, 0xff, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe2, 0xe9, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x88, 0xff, 0xdc, 0xc8, 0xff, 0xd4, 0xa8, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x47, 0xd6, 0xbc, 0x47, 0xa0, + 0xbc, 0x47, 0x51, 0xc4, 0x47, 0xd1, 0xc4, 0x67, 0xff, 0xd4, 0xa8, 0xff, 0xe3, 0x48, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xe4, 0x07, 0xff, 0xf6, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0xad, 0xff, 0xd3, 0xe0, 0xff, 0xf6, 0x73, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xee, 0x32, 0xff, 0xdc, 0x64, 0xff, 0xdc, 0x84, 0xff, 0xed, 0xae, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x94, 0xff, 0xdc, 0xc7, 0xff, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x8c, 0xff, 0xf6, 0x94, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x73, 0xff, 0xdc, 0xc7, 0xff, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xdc, 0x84, 0xff, 0xdc, 0xa7, 0xff, 0xeb, 0xae, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x69, 0xff, 0xfe, 0x59, 0xff, 0xff, 0xff, 0xff, 0xf5, 0x96, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe3, 0xc8, 0xff, 0xdc, 0xc8, 0xff, 0xd4, 0xa8, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x47, 0xd6, 0xbc, 0x47, 0xa0, + 0xbc, 0x27, 0x51, 0xbc, 0x47, 0xd1, 0xc4, 0x67, 0xff, 0xd4, 0xa8, 0xff, 0xdc, 0xa8, 0xff, 0xe2, 0x27, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x88, 0xff, 0xfe, 0xda, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7b, 0xff, 0xdc, 0x64, 0xff, 0xd3, 0x80, 0xff, 0xe5, 0x4a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x18, 0xff, 0xdc, 0x85, 0xff, 0xdc, 0x43, 0xff, 0xed, 0xce, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xd6, 0xff, 0xd4, 0x22, 0xff, 0xf6, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x6b, 0xff, 0xdc, 0xa6, 0xff, 0xff, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xdc, 0x64, 0xff, 0xdc, 0xc7, 0xff, 0xff, 0x3a, 0xff, 0xeb, 0xcf, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0xeb, 0xff, 0xf5, 0x96, 0xff, 0xea, 0x69, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x87, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc8, 0xff, 0xd4, 0xa8, 0xff, 0xc4, 0x67, 0xff, 0xbc, 0x47, 0xd6, 0xbc, 0x27, 0xa0, + 0xbc, 0x27, 0x51, 0xbc, 0x47, 0xd1, 0xc4, 0x67, 0xff, 0xd4, 0xa8, 0xff, 0xdc, 0xc8, 0xff, 0xe3, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xeb, 0xef, 0xff, 0xff, 0xbe, 0xff, 0xff, 0x39, 0xff, 0xe5, 0x4b, 0xff, 0xe5, 0x29, 0xff, 0xe5, 0x8d, 0xff, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbd, 0xff, 0xe5, 0x29, 0xff, 0xd4, 0x21, 0xff, 0xed, 0xce, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xf7, 0xff, 0xd3, 0xe0, 0xff, 0xee, 0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xdc, 0xa6, 0xff, 0xdc, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xdc, 0x84, 0xff, 0xdc, 0xc7, 0xff, 0xff, 0x7c, 0xff, 0xff, 0x9e, 0xff, 0xeb, 0xcf, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe4, 0x48, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc8, 0xff, 0xd4, 0xa8, 0xff, 0xc4, 0x67, 0xff, 0xbc, 0x47, 0xd6, 0xbc, 0x27, 0xa0, + 0xbc, 0x27, 0x51, 0xbc, 0x47, 0xd1, 0xc4, 0x67, 0xff, 0xd4, 0xa8, 0xff, 0xdc, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xe3, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe8, 0xff, 0xf4, 0x51, 0xff, 0xff, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xce, 0xff, 0xd3, 0xe0, 0xff, 0xe5, 0xae, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x18, 0xff, 0xd4, 0x01, 0xff, 0xe5, 0x2a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x39, 0xff, 0xd4, 0x01, 0xff, 0xe5, 0x29, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xdc, 0x84, 0xff, 0xdc, 0xc7, 0xff, 0xff, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7d, 0xff, 0xe3, 0x2a, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe3, 0x68, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc8, 0xff, 0xd4, 0xa8, 0xff, 0xc4, 0x67, 0xff, 0xbc, 0x47, 0xd6, 0xbc, 0x27, 0xa0, + 0xbc, 0x47, 0x51, 0xbc, 0x47, 0xd1, 0xc4, 0x67, 0xff, 0xd4, 0xa8, 0xff, 0xdc, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xa8, 0xff, 0xe2, 0x67, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe8, 0xff, 0xf4, 0x51, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0x94, 0xff, 0xd3, 0xe0, 0xff, 0xe5, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xff, 0xdc, 0x64, 0xff, 0xdc, 0x84, 0xff, 0xf6, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xed, 0xf0, 0xff, 0xd3, 0xe0, 0xff, 0xe5, 0x4b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xdc, 0x84, 0xff, 0xdc, 0xc7, 0xff, 0xff, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xdc, 0xc9, 0xff, 0xda, 0xc5, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0xa7, 0xff, 0xdc, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc8, 0xff, 0xd4, 0xa8, 0xff, 0xc4, 0x67, 0xff, 0xbc, 0x27, 0xd6, 0xbc, 0x47, 0xa0, + 0xbc, 0x47, 0x51, 0xbc, 0x47, 0xd1, 0xc4, 0x67, 0xff, 0xd4, 0xa8, 0xff, 0xdc, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xe4, 0x69, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0xe9, 0xff, 0xed, 0x6e, 0xff, 0xe5, 0x6b, 0xff, 0xee, 0x53, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xd4, 0x22, 0xff, 0xe5, 0x6b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x18, 0xff, 0xdc, 0xa6, 0xff, 0xdc, 0xa6, 0xff, 0xdc, 0xe8, 0xff, 0xe5, 0x4b, 0xff, 0xe5, 0x2a, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0x85, 0xff, 0xe5, 0x6b, 0xff, 0xff, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xdc, 0x84, 0xff, 0xdc, 0xc7, 0xff, 0xff, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x6c, 0xff, 0xdc, 0x06, 0xff, 0xe2, 0x28, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x48, 0xff, 0xe4, 0x88, 0xff, 0xdd, 0x08, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc8, 0xff, 0xcc, 0xa8, 0xff, 0xc4, 0x67, 0xff, 0xbc, 0x27, 0xd6, 0xbc, 0x47, 0xa0, + 0xbc, 0x47, 0x51, 0xbc, 0x47, 0xd1, 0xc4, 0x67, 0xff, 0xd4, 0xa8, 0xff, 0xd4, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdd, 0x08, 0xff, 0xdd, 0x09, 0xff, 0xdb, 0xa5, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xdb, 0x43, 0xff, 0xdc, 0xc6, 0xff, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0xff, 0xdc, 0xc7, 0xff, 0xe5, 0x2a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x18, 0xff, 0xdc, 0xa6, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0x64, 0xff, 0xdc, 0x85, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0x85, 0xff, 0xe5, 0x4b, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xdc, 0x64, 0xff, 0xdc, 0xc7, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe4, 0x0a, 0xff, 0xe2, 0x47, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xe4, 0x48, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xa8, 0xff, 0xc4, 0x67, 0xff, 0xbc, 0x27, 0xd6, 0xbc, 0x47, 0xa0, + 0xbc, 0x47, 0x51, 0xbc, 0x47, 0xd1, 0xc4, 0x67, 0xff, 0xd4, 0xa8, 0xff, 0xd4, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdd, 0x09, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0x64, 0xff, 0xed, 0x52, 0xff, 0xe2, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xe2, 0xc7, 0xff, 0xf6, 0x56, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x8d, 0xff, 0xe5, 0x09, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xff, 0xdc, 0x85, 0xff, 0xdc, 0xc7, 0xff, 0xe5, 0x09, 0xff, 0xdd, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xe5, 0x09, 0xff, 0xdc, 0x65, 0xff, 0xe5, 0x4a, 0xff, 0xff, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xff, 0xdc, 0x64, 0xff, 0xdc, 0xa7, 0xff, 0xff, 0x7b, 0xff, 0xfe, 0xdb, 0xff, 0xeb, 0xcf, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xe4, 0x48, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xa8, 0xff, 0xc4, 0x67, 0xff, 0xbc, 0x27, 0xd6, 0xbc, 0x47, 0xa0, + 0xbc, 0x27, 0x51, 0xbc, 0x47, 0xd1, 0xc4, 0x67, 0xff, 0xcc, 0xa8, 0xff, 0xd4, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe9, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc7, 0xff, 0xe5, 0xad, 0xff, 0xec, 0xce, 0xff, 0xe2, 0x48, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x28, 0xff, 0xeb, 0xcc, 0xff, 0xed, 0x4f, 0xff, 0xe5, 0x4b, 0xff, 0xdc, 0xe8, 0xff, 0xed, 0xcf, 0xff, 0xee, 0x11, 0xff, 0xe5, 0x6c, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdd, 0x09, 0xff, 0xdc, 0xe7, 0xff, 0xdc, 0xe8, 0xff, 0xe5, 0xce, 0xff, 0xee, 0x11, 0xff, 0xe5, 0x8d, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0x27, 0xff, 0xe3, 0x29, 0xff, 0xe2, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x48, 0xff, 0xdc, 0x48, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xd4, 0xc8, 0xff, 0xcc, 0xa8, 0xff, 0xc4, 0x67, 0xff, 0xbc, 0x27, 0xd6, 0xbc, 0x47, 0xa0, + 0xc4, 0x26, 0x51, 0xbc, 0x47, 0xd1, 0xc4, 0x67, 0xff, 0xcc, 0xa8, 0xff, 0xd4, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe9, 0xff, 0xdd, 0x09, 0xff, 0xdc, 0xc7, 0xff, 0xdc, 0x85, 0xff, 0xdc, 0x06, 0xff, 0xe2, 0x67, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0xc8, 0xff, 0xe3, 0xc8, 0xff, 0xdc, 0x46, 0xff, 0xdc, 0x65, 0xff, 0xdc, 0xa7, 0xff, 0xdc, 0xe9, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe9, 0xff, 0xdc, 0xc8, 0xff, 0xdc, 0x86, 0xff, 0xdc, 0x26, 0xff, 0xe3, 0x67, 0xff, 0xe2, 0xa8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0xa7, 0xff, 0xdc, 0x88, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xd4, 0xc8, 0xff, 0xcc, 0xa8, 0xff, 0xc4, 0x67, 0xff, 0xbc, 0x27, 0xd6, 0xbc, 0x27, 0xa0, + 0xbc, 0x27, 0x53, 0xbc, 0x27, 0xd1, 0xc4, 0x67, 0xff, 0xcc, 0x88, 0xff, 0xd4, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xa8, 0xff, 0xe3, 0x08, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x87, 0xff, 0xe3, 0x08, 0xff, 0xe3, 0x68, 0xff, 0xe3, 0xc8, 0xff, 0xe3, 0xe8, 0xff, 0xe4, 0x08, 0xff, 0xe3, 0xe8, 0xff, 0xe3, 0xc8, 0xff, 0xe3, 0x68, 0xff, 0xe2, 0xe8, 0xff, 0xe2, 0x67, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xe3, 0x48, 0xff, 0xdc, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xd4, 0xc8, 0xff, 0xcc, 0xa8, 0xff, 0xc4, 0x67, 0xff, 0xbc, 0x27, 0xd7, 0xbc, 0x27, 0xa1, + 0x94, 0x0d, 0x5a, 0xbc, 0x48, 0xd7, 0xcc, 0x66, 0xff, 0xcc, 0xa8, 0xff, 0xd4, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xe4, 0x08, 0xff, 0xe2, 0x67, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xe2, 0xa8, 0xff, 0xe4, 0x48, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xd4, 0xc8, 0xff, 0xcc, 0xa8, 0xff, 0xc4, 0x67, 0xff, 0xbc, 0x47, 0xde, 0xbc, 0x47, 0xa9, + 0xb4, 0x49, 0x35, 0xbc, 0x47, 0xc1, 0xc4, 0x47, 0xff, 0xcc, 0x88, 0xff, 0xd4, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc8, 0xff, 0xe3, 0x88, 0xff, 0xe2, 0x67, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xe2, 0x87, 0xff, 0xe3, 0xa8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xcc, 0x88, 0xff, 0xc4, 0x47, 0xff, 0xbc, 0x47, 0xc8, 0xbc, 0x47, 0x8b, + 0x00, 0x00, 0x00, 0xab, 0x88, 0x7f, 0xbc, 0x27, 0xff, 0xcc, 0xa7, 0xff, 0xd4, 0xa8, 0xff, 0xd4, 0xc8, 0xff, 0xdc, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xa8, 0xff, 0xdb, 0xa8, 0xff, 0xe2, 0xa8, 0xff, 0xe2, 0x47, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x47, 0xff, 0xe2, 0xc8, 0xff, 0xdb, 0xc8, 0xff, 0xdc, 0xc8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xe8, 0xff, 0xdc, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xa8, 0xff, 0xcc, 0xa7, 0xff, 0xbc, 0x27, 0xff, 0xab, 0x89, 0x84, 0xab, 0x89, 0x2b, + 0x00, 0x00, 0x00, 0xc5, 0x26, 0x19, 0xc4, 0x47, 0xcd, 0xbb, 0xe8, 0xff, 0xcc, 0x87, 0xff, 0xd4, 0xa8, 0xff, 0xd4, 0xa8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xdc, 0x08, 0xff, 0xdb, 0x68, 0xff, 0xe2, 0xc7, 0xff, 0xe2, 0x87, 0xff, 0xe2, 0x27, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xe2, 0x47, 0xff, 0xe2, 0x87, 0xff, 0xe2, 0xc7, 0xff, 0xdb, 0x88, 0xff, 0xdc, 0x48, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xc8, 0xff, 0xd4, 0xa8, 0xff, 0xd4, 0xa8, 0xff, 0xd4, 0x88, 0xff, 0xcc, 0x87, 0xff, 0xbb, 0xe8, 0xff, 0xc4, 0x47, 0xcd, 0xcd, 0x46, 0x1a, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdd, 0x85, 0x2d, 0xbb, 0xe8, 0xd4, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xcc, 0x87, 0xff, 0xcc, 0x88, 0xff, 0xcc, 0x66, 0xff, 0xcc, 0x65, 0xff, 0xcc, 0x66, 0xff, 0xcc, 0x66, 0xff, 0xcc, 0x66, 0xff, 0xcc, 0x66, 0xff, 0xcc, 0x66, 0xff, 0xcc, 0x66, 0xff, 0xcc, 0x66, 0xff, 0xd4, 0x65, 0xff, 0xcc, 0x87, 0xff, 0xcc, 0x88, 0xff, 0xcc, 0x88, 0xff, 0xcc, 0x88, 0xff, 0xd4, 0x28, 0xff, 0xd3, 0xa8, 0xff, 0xdb, 0x07, 0xff, 0xda, 0xc7, 0xff, 0xe2, 0x67, 0xff, 0xe2, 0x47, 0xff, 0xe2, 0x27, 0xff, 0xe2, 0x07, 0xff, 0xe2, 0x27, 0xff, 0xe2, 0x47, 0xff, 0xe2, 0x87, 0xff, 0xda, 0xe7, 0xff, 0xdb, 0x27, 0xff, 0xd3, 0xc8, 0xff, 0xcc, 0x48, 0xff, 0xcc, 0x88, 0xff, 0xcc, 0x88, 0xff, 0xcc, 0x88, 0xff, 0xcc, 0xa8, 0xff, 0xcc, 0x87, 0xff, 0xcc, 0x65, 0xff, 0xcc, 0x66, 0xff, 0xcc, 0x66, 0xff, 0xcc, 0x66, 0xff, 0xcc, 0x66, 0xff, 0xcc, 0x66, 0xff, 0xcc, 0x66, 0xff, 0xcc, 0x66, 0xff, 0xd4, 0x65, 0xff, 0xcc, 0x66, 0xff, 0xcc, 0x88, 0xff, 0xcc, 0x87, 0xff, 0xc4, 0x67, 0xff, 0xc4, 0x67, 0xff, 0xbb, 0xe8, 0xd4, 0xdd, 0x85, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x86, 0x19, 0xbb, 0xe8, 0x73, 0xbc, 0x28, 0xb4, 0xbc, 0x48, 0xc3, 0xc4, 0x25, 0xc2, 0xc4, 0x25, 0xac, 0xc4, 0x67, 0x87, 0xc4, 0x47, 0x8a, 0xc4, 0x47, 0x8f, 0xc4, 0x47, 0x8e, 0xc4, 0x47, 0x8e, 0xc4, 0x47, 0x8e, 0xc4, 0x47, 0x8f, 0xc4, 0x67, 0x89, 0xc4, 0x47, 0x8d, 0xcc, 0x24, 0xb1, 0xc4, 0x46, 0xbf, 0xc4, 0x68, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x67, 0xbb, 0xc4, 0x68, 0xbb, 0xc4, 0x47, 0xbe, 0xc4, 0x24, 0xb2, 0xc4, 0x47, 0x8f, 0xc4, 0x67, 0x89, 0xc4, 0x47, 0x8f, 0xc4, 0x47, 0x8e, 0xc4, 0x47, 0x8e, 0xc4, 0x47, 0x8e, 0xc4, 0x47, 0x8f, 0xc4, 0x67, 0x8b, 0xc4, 0x67, 0x86, 0xc4, 0x25, 0xaa, 0xc4, 0x25, 0xc2, 0xbc, 0x68, 0xc3, 0xbc, 0x48, 0xb4, 0xbb, 0xe8, 0x73, 0xc4, 0x86, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x08, 0x04, 0xbc, 0x66, 0x0b, 0xaa, 0xa0, 0x03, 0xad, 0x79, 0x09, 0xad, 0xd9, 0x27, 0xad, 0x97, 0x23, 0xad, 0xb7, 0x1e, 0xb5, 0x77, 0x1f, 0xb5, 0x77, 0x1f, 0xb5, 0x77, 0x1f, 0xad, 0xb7, 0x1e, 0xad, 0x97, 0x24, 0xa5, 0x79, 0x1f, 0xb4, 0xcd, 0x0a, 0xcb, 0x80, 0x09, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xbc, 0xa9, 0x07, 0xcb, 0x80, 0x09, 0xac, 0x8e, 0x09, 0xad, 0xba, 0x1e, 0xad, 0x97, 0x24, 0xad, 0xb7, 0x1e, 0xb5, 0x77, 0x1f, 0xb5, 0x77, 0x1f, 0xb5, 0x77, 0x1f, 0xad, 0xb7, 0x1e, 0xb5, 0x97, 0x23, 0xa5, 0x78, 0x27, 0x9d, 0xb6, 0x0a, 0xad, 0x60, 0x03, 0xbc, 0x66, 0x0b, 0xc4, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0xfb, 0x59, 0xad, 0xb9, 0xff, 0xad, 0xb9, 0xf4, 0xad, 0xb9, 0xea, 0xad, 0xb9, 0xeb, 0xad, 0xb9, 0xeb, 0xad, 0xb9, 0xeb, 0xad, 0xd9, 0xe9, 0xb5, 0xd9, 0xf4, 0xa5, 0x79, 0xec, 0x95, 0x37, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0xfb, 0x43, 0xad, 0xda, 0xea, 0xad, 0xb9, 0xf4, 0xad, 0xb9, 0xe9, 0xad, 0xb9, 0xeb, 0xad, 0xb9, 0xeb, 0xad, 0xb9, 0xeb, 0xad, 0xd9, 0xea, 0xb5, 0xda, 0xf4, 0xa5, 0x78, 0xff, 0x9d, 0x7a, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x77, 0x5c, 0xb5, 0x75, 0xff, 0xb5, 0x96, 0xff, 0xb5, 0x96, 0xff, 0xb5, 0x96, 0xff, 0xb5, 0x96, 0xff, 0xb5, 0x96, 0xff, 0xb5, 0x96, 0xff, 0xb5, 0x96, 0xff, 0x9c, 0xf3, 0xf6, 0x8c, 0x94, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x77, 0x41, 0xb5, 0x75, 0xf5, 0xb5, 0x96, 0xff, 0xb5, 0x96, 0xff, 0xb5, 0x96, 0xff, 0xb5, 0x96, 0xff, 0xb5, 0x96, 0xff, 0xb5, 0x96, 0xff, 0xb5, 0x96, 0xff, 0xa4, 0xf4, 0xff, 0x9c, 0xd3, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x18, 0x04, 0xa5, 0x14, 0x88, 0xa5, 0x15, 0xee, 0xa5, 0x35, 0xe7, 0xa5, 0x35, 0xdf, 0xa5, 0x35, 0xdf, 0xa5, 0x35, 0xde, 0xa5, 0x35, 0xe9, 0x9c, 0xf4, 0xe3, 0x94, 0xb3, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x35, 0x63, 0xa5, 0x15, 0xe4, 0xa5, 0x35, 0xea, 0xa5, 0x35, 0xde, 0xa5, 0x35, 0xdf, 0xa5, 0x35, 0xdf, 0xa5, 0x35, 0xe7, 0xa5, 0x14, 0xed, 0x94, 0xb3, 0x86, 0x84, 0x10, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#endif +#if LV_COLOR_DEPTH == 32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xab, 0xe9, 0x46, 0x4f, 0xa9, 0xe6, 0xb5, 0x4f, 0xa9, 0xe6, 0xed, 0x4f, 0xa9, 0xe6, 0xf5, 0x4f, 0xa9, 0xe6, 0xf0, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xef, 0x4f, 0xa9, 0xe6, 0xf1, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xeb, 0x4f, 0xa9, 0xe6, 0xb4, 0x4f, 0xa9, 0xe5, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0xaa, 0xe5, 0x75, 0x4f, 0xa9, 0xe6, 0xff, 0x4f, 0xa9, 0xe6, 0xff, 0x4f, 0xa9, 0xe6, 0xf9, 0x4f, 0xa9, 0xe6, 0xf1, 0x4f, 0xa9, 0xe6, 0xf3, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf4, 0x4f, 0xa9, 0xe6, 0xf3, 0x4f, 0xa9, 0xe6, 0xf1, 0x4f, 0xa9, 0xe6, 0xf9, 0x4f, 0xa9, 0xe6, 0xff, 0x4f, 0xa9, 0xe5, 0xff, 0x50, 0xa9, 0xe5, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0xa8, 0xe5, 0x58, 0x50, 0xa9, 0xe7, 0xff, 0x4e, 0xa8, 0xe6, 0xff, 0x4f, 0xa8, 0xe5, 0x9f, 0x4e, 0xa9, 0xe6, 0x3e, 0x50, 0xaa, 0xe6, 0x33, 0x4f, 0xa7, 0xe5, 0x3a, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x4e, 0xa9, 0xe5, 0x3b, 0x51, 0xaa, 0xe4, 0x39, 0x50, 0xaa, 0xe6, 0x33, 0x4e, 0xa9, 0xe6, 0x3e, 0x4f, 0xa8, 0xe4, 0x9f, 0x4e, 0xa8, 0xe5, 0xff, 0x50, 0xa9, 0xe6, 0xff, 0x4f, 0xaa, 0xe8, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0xae, 0xf2, 0x13, 0x4f, 0xa9, 0xe6, 0xbe, 0x4e, 0xa7, 0xe3, 0xff, 0x50, 0xa9, 0xe7, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xa9, 0xe8, 0x92, 0x4e, 0xa7, 0xe4, 0xff, 0x4f, 0xa8, 0xe6, 0xbf, 0x51, 0xae, 0xe4, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0xa3, 0xde, 0x2f, 0x50, 0xaa, 0xe7, 0xff, 0x51, 0xab, 0xe9, 0xef, 0x58, 0xb6, 0xf5, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0xb6, 0xf5, 0x31, 0x51, 0xab, 0xe8, 0xef, 0x50, 0xa9, 0xe7, 0xff, 0x4c, 0xa3, 0xde, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x01, 0x55, 0xaa, 0xaa, 0x03, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x96, 0xcd, 0x38, 0x55, 0xb1, 0xf1, 0xff, 0x57, 0xb6, 0xf6, 0xd9, 0x46, 0x95, 0xca, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x46, 0x95, 0xd3, 0x1d, 0x57, 0xb6, 0xf6, 0xd9, 0x55, 0xb2, 0xf0, 0xff, 0x43, 0x98, 0xce, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x55, 0xaa, 0xaa, 0x03, 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x9d, 0xc4, 0x0d, 0x39, 0x8b, 0xbe, 0x5a, 0x3b, 0x85, 0xbc, 0x94, 0x38, 0x8a, 0xbd, 0x9f, 0x39, 0x88, 0xbc, 0x9c, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x35, 0x86, 0xb9, 0x8f, 0x3a, 0x8a, 0xbf, 0xaf, 0x44, 0x98, 0xcf, 0xff, 0x41, 0x94, 0xcd, 0xf2, 0x33, 0x80, 0xb4, 0x9c, 0x34, 0x83, 0xb5, 0x8e, 0x3a, 0x89, 0xbd, 0x9b, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x3a, 0x89, 0xbd, 0x9b, 0x34, 0x83, 0xb5, 0x8e, 0x33, 0x80, 0xb4, 0x9c, 0x41, 0x94, 0xcd, 0xf2, 0x44, 0x97, 0xcf, 0xff, 0x3a, 0x89, 0xbf, 0xaf, 0x35, 0x86, 0xb9, 0x8f, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x38, 0x88, 0xbd, 0x9a, 0x39, 0x88, 0xbc, 0x9c, 0x38, 0x88, 0xbd, 0x9f, 0x3b, 0x85, 0xbc, 0x94, 0x39, 0x8b, 0xbe, 0x5a, 0x3b, 0x9d, 0xc4, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0xa7, 0xce, 0x1a, 0x3c, 0x84, 0xbc, 0xbb, 0x38, 0x8a, 0xbf, 0xff, 0x39, 0x86, 0xbc, 0xff, 0x39, 0x8a, 0xbf, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8d, 0xc4, 0xff, 0x39, 0x8a, 0xc0, 0xff, 0x36, 0x85, 0xba, 0xff, 0x36, 0x85, 0xbb, 0xff, 0x3b, 0x8b, 0xc1, 0xff, 0x3c, 0x8e, 0xc5, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3c, 0x8e, 0xc5, 0xff, 0x3b, 0x8b, 0xc1, 0xff, 0x36, 0x86, 0xbb, 0xff, 0x36, 0x86, 0xba, 0xff, 0x39, 0x8a, 0xbf, 0xff, 0x3b, 0x8d, 0xc4, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x3b, 0x8c, 0xc3, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x39, 0x89, 0xbf, 0xff, 0x3a, 0x85, 0xbc, 0xff, 0x38, 0x8a, 0xbe, 0xff, 0x3d, 0x84, 0xbb, 0xbb, 0x27, 0xb1, 0xce, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x33, 0xaa, 0xcc, 0x0f, 0x36, 0x92, 0xc3, 0xc0, 0x41, 0x7a, 0xb7, 0xff, 0x38, 0x8d, 0xc2, 0xff, 0x3c, 0x94, 0xcc, 0xff, 0x42, 0x9f, 0xdc, 0xff, 0x43, 0xa1, 0xe1, 0xff, 0x43, 0xa0, 0xe0, 0xff, 0x43, 0xa2, 0xe0, 0xff, 0x43, 0xa1, 0xe0, 0xff, 0x43, 0xa1, 0xe0, 0xff, 0x44, 0xa2, 0xe1, 0xff, 0x42, 0xa2, 0xe1, 0xff, 0x42, 0xa1, 0xe0, 0xff, 0x43, 0xa1, 0xe1, 0xff, 0x42, 0xa1, 0xe0, 0xff, 0x42, 0xa2, 0xe0, 0xff, 0x42, 0xa1, 0xe0, 0xff, 0x42, 0xa1, 0xe0, 0xff, 0x42, 0xa0, 0xe0, 0xff, 0x42, 0x9e, 0xe0, 0xff, 0x41, 0x91, 0xe0, 0xff, 0x40, 0x7d, 0xe1, 0xff, 0x3e, 0x69, 0xe1, 0xff, 0x3d, 0x5d, 0xe1, 0xff, 0x3c, 0x50, 0xe2, 0xff, 0x3b, 0x49, 0xe2, 0xff, 0x3b, 0x45, 0xe2, 0xff, 0x3b, 0x42, 0xe2, 0xff, 0x3b, 0x45, 0xe2, 0xff, 0x3b, 0x49, 0xe2, 0xff, 0x3c, 0x52, 0xe2, 0xff, 0x3d, 0x5e, 0xe1, 0xff, 0x3e, 0x6b, 0xe1, 0xff, 0x40, 0x82, 0xe1, 0xff, 0x41, 0x94, 0xe0, 0xff, 0x42, 0x9f, 0xe0, 0xff, 0x42, 0xa0, 0xe0, 0xff, 0x42, 0xa1, 0xe0, 0xff, 0x42, 0xa1, 0xe0, 0xff, 0x42, 0xa1, 0xe0, 0xff, 0x42, 0xa1, 0xe0, 0xff, 0x42, 0xa1, 0xe0, 0xff, 0x43, 0xa1, 0xe1, 0xff, 0x42, 0xa2, 0xe0, 0xff, 0x42, 0xa2, 0xe1, 0xff, 0x44, 0xa2, 0xe1, 0xff, 0x43, 0xa1, 0xe0, 0xff, 0x43, 0xa1, 0xe0, 0xff, 0x43, 0xa2, 0xe0, 0xff, 0x43, 0xa0, 0xe0, 0xff, 0x43, 0xa0, 0xe1, 0xff, 0x42, 0x9f, 0xdc, 0xff, 0x3c, 0x94, 0xcb, 0xff, 0x38, 0x8d, 0xc1, 0xff, 0x41, 0x79, 0xb7, 0xff, 0x32, 0x96, 0xc6, 0xc0, 0x44, 0x99, 0xbb, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3a, 0x86, 0xbe, 0x76, 0x3d, 0x84, 0xbc, 0xff, 0x39, 0x8d, 0xc2, 0xff, 0x3f, 0x97, 0xd1, 0xff, 0x41, 0x9e, 0xdb, 0xff, 0x37, 0x82, 0xb5, 0xff, 0x31, 0x70, 0x9c, 0xff, 0x32, 0x72, 0x9f, 0xff, 0x31, 0x73, 0x9e, 0xff, 0x31, 0x73, 0x9f, 0xff, 0x31, 0x73, 0xa0, 0xff, 0x31, 0x73, 0xa0, 0xff, 0x32, 0x73, 0xa0, 0xff, 0x32, 0x73, 0xa0, 0xff, 0x32, 0x73, 0xa0, 0xff, 0x32, 0x73, 0xa0, 0xff, 0x32, 0x73, 0xa0, 0xff, 0x32, 0x74, 0xa0, 0xff, 0x32, 0x71, 0xa3, 0xff, 0x35, 0x62, 0xb6, 0xff, 0x37, 0x52, 0xc7, 0xff, 0x39, 0x45, 0xd6, 0xff, 0x39, 0x41, 0xda, 0xff, 0x39, 0x3e, 0xde, 0xff, 0x3a, 0x3c, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe0, 0xff, 0x39, 0x3e, 0xdd, 0xff, 0x39, 0x42, 0xd9, 0xff, 0x38, 0x46, 0xd4, 0xff, 0x36, 0x54, 0xc4, 0xff, 0x34, 0x64, 0xb2, 0xff, 0x32, 0x73, 0xa1, 0xff, 0x32, 0x74, 0xa0, 0xff, 0x32, 0x74, 0xa0, 0xff, 0x32, 0x73, 0xa0, 0xff, 0x32, 0x73, 0xa0, 0xff, 0x32, 0x73, 0xa0, 0xff, 0x32, 0x73, 0xa0, 0xff, 0x32, 0x73, 0xa0, 0xff, 0x31, 0x73, 0xa0, 0xff, 0x31, 0x73, 0xa0, 0xff, 0x31, 0x73, 0x9f, 0xff, 0x31, 0x73, 0x9e, 0xff, 0x32, 0x72, 0x9f, 0xff, 0x31, 0x6f, 0x9c, 0xff, 0x37, 0x83, 0xb4, 0xff, 0x41, 0x9e, 0xdc, 0xff, 0x3f, 0x97, 0xd2, 0xff, 0x3a, 0x8d, 0xc2, 0xff, 0x3a, 0x85, 0xbd, 0xff, 0x41, 0x82, 0xb8, 0x7a, 0x42, 0x84, 0xb5, 0x1f, + 0x4a, 0x82, 0xb5, 0x2d, 0x3d, 0x85, 0xbd, 0xbc, 0x39, 0x8b, 0xc1, 0xff, 0x40, 0x9a, 0xd3, 0xff, 0x41, 0x9c, 0xd9, 0xff, 0x29, 0x5d, 0x81, 0xff, 0x1a, 0x34, 0x46, 0xff, 0x1a, 0x37, 0x4a, 0xff, 0x1b, 0x38, 0x4d, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x20, 0x39, 0x62, 0xff, 0x2b, 0x3a, 0x98, 0xff, 0x35, 0x3a, 0xcb, 0xff, 0x38, 0x3a, 0xd9, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x38, 0x3a, 0xd8, 0xff, 0x34, 0x3a, 0xc7, 0xff, 0x2a, 0x3a, 0x91, 0xff, 0x1e, 0x3a, 0x59, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1b, 0x38, 0x4d, 0xff, 0x1a, 0x37, 0x4a, 0xff, 0x1a, 0x34, 0x46, 0xff, 0x29, 0x5d, 0x80, 0xff, 0x41, 0x9c, 0xd9, 0xff, 0x3f, 0x9a, 0xd4, 0xff, 0x3a, 0x8a, 0xc0, 0xff, 0x39, 0x89, 0xbe, 0xc4, 0x38, 0x8b, 0xbf, 0x84, + 0x60, 0x84, 0x9c, 0x55, 0x3f, 0x89, 0xb8, 0xd4, 0x34, 0x91, 0xcf, 0xff, 0x46, 0xa5, 0xe4, 0xff, 0x32, 0x75, 0xa1, 0xff, 0x17, 0x2d, 0x3d, 0xff, 0x1a, 0x37, 0x49, 0xff, 0x1e, 0x41, 0x57, 0xff, 0x1e, 0x40, 0x56, 0xff, 0x1f, 0x41, 0x58, 0xff, 0x1f, 0x41, 0x57, 0xff, 0x1f, 0x41, 0x58, 0xff, 0x1f, 0x41, 0x58, 0xff, 0x1f, 0x41, 0x58, 0xff, 0x1f, 0x41, 0x58, 0xff, 0x23, 0x40, 0x6b, 0xff, 0x2e, 0x3d, 0xa6, 0xff, 0x37, 0x3b, 0xd4, 0xff, 0x39, 0x3a, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3a, 0xde, 0xff, 0x37, 0x3b, 0xd1, 0xff, 0x2d, 0x3e, 0x9c, 0xff, 0x21, 0x40, 0x63, 0xff, 0x1f, 0x41, 0x58, 0xff, 0x1f, 0x41, 0x58, 0xff, 0x1f, 0x41, 0x58, 0xff, 0x1f, 0x41, 0x58, 0xff, 0x1f, 0x41, 0x58, 0xff, 0x1f, 0x41, 0x57, 0xff, 0x1f, 0x40, 0x57, 0xff, 0x1e, 0x40, 0x56, 0xff, 0x1e, 0x41, 0x57, 0xff, 0x1b, 0x37, 0x49, 0xff, 0x17, 0x2d, 0x3d, 0xff, 0x32, 0x75, 0xa1, 0xff, 0x44, 0xa5, 0xe6, 0xff, 0x3c, 0x90, 0xc9, 0xff, 0x39, 0x8a, 0xbf, 0xda, 0x3a, 0x8a, 0xbf, 0xa4, + 0x41, 0x89, 0xb7, 0x52, 0x3b, 0x89, 0xbc, 0xd1, 0x3d, 0x97, 0xd2, 0xff, 0x46, 0xa6, 0xe8, 0xff, 0x2a, 0x5b, 0x7d, 0xff, 0x17, 0x2f, 0x3f, 0xff, 0x1f, 0x44, 0x5d, 0xff, 0x20, 0x45, 0x5e, 0xff, 0x20, 0x45, 0x5e, 0xff, 0x20, 0x45, 0x5e, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x21, 0x46, 0x62, 0xff, 0x2c, 0x42, 0x94, 0xff, 0x38, 0x3b, 0xd5, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3a, 0x3a, 0xdf, 0xff, 0x39, 0x3a, 0xdf, 0xff, 0x39, 0x3a, 0xde, 0xff, 0x39, 0x3a, 0xde, 0xff, 0x39, 0x3a, 0xde, 0xff, 0x39, 0x3a, 0xdf, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x37, 0x3c, 0xcf, 0xff, 0x2a, 0x43, 0x8c, 0xff, 0x22, 0x47, 0x63, 0xff, 0x20, 0x46, 0x5f, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x20, 0x45, 0x5e, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x1f, 0x44, 0x5d, 0xff, 0x17, 0x2f, 0x3f, 0xff, 0x2a, 0x5b, 0x7d, 0xff, 0x45, 0xa7, 0xe6, 0xff, 0x3e, 0x96, 0xd0, 0xff, 0x39, 0x88, 0xbe, 0xd7, 0x3b, 0x8a, 0xc0, 0xa1, + 0x36, 0x8b, 0xc6, 0x51, 0x3b, 0x8a, 0xc0, 0xd1, 0x40, 0x97, 0xd1, 0xff, 0x45, 0xa7, 0xe8, 0xff, 0x28, 0x5b, 0x7d, 0xff, 0x18, 0x30, 0x41, 0xff, 0x20, 0x45, 0x5d, 0xff, 0x20, 0x45, 0x5e, 0xff, 0x20, 0x45, 0x5e, 0xff, 0x21, 0x45, 0x5f, 0xff, 0x21, 0x46, 0x5f, 0xff, 0x21, 0x46, 0x60, 0xff, 0x25, 0x44, 0x76, 0xff, 0x33, 0x3d, 0xbd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x39, 0x3b, 0xdc, 0xff, 0x37, 0x3b, 0xd5, 0xff, 0x32, 0x3e, 0xb9, 0xff, 0x2e, 0x40, 0xa6, 0xff, 0x2b, 0x42, 0x92, 0xff, 0x29, 0x44, 0x86, 0xff, 0x27, 0x45, 0x7e, 0xff, 0x26, 0x45, 0x7b, 0xff, 0x28, 0x45, 0x7f, 0xff, 0x29, 0x43, 0x88, 0xff, 0x2b, 0x42, 0x95, 0xff, 0x2f, 0x40, 0xa7, 0xff, 0x33, 0x3e, 0xbe, 0xff, 0x38, 0x3b, 0xd8, 0xff, 0x39, 0x3b, 0xdc, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x32, 0x3f, 0xb3, 0xff, 0x24, 0x44, 0x70, 0xff, 0x21, 0x46, 0x60, 0xff, 0x21, 0x46, 0x5f, 0xff, 0x21, 0x46, 0x5f, 0xff, 0x21, 0x46, 0x5f, 0xff, 0x20, 0x45, 0x5e, 0xff, 0x20, 0x45, 0x5e, 0xff, 0x20, 0x45, 0x5d, 0xff, 0x18, 0x30, 0x40, 0xff, 0x28, 0x5b, 0x7e, 0xff, 0x45, 0xa7, 0xe7, 0xff, 0x3f, 0x97, 0xd1, 0xff, 0x3a, 0x89, 0xbf, 0xd6, 0x39, 0x8b, 0xc2, 0xa0, + 0x3c, 0x8b, 0xc0, 0x51, 0x3b, 0x8b, 0xc0, 0xd1, 0x3f, 0x98, 0xd2, 0xff, 0x45, 0xa7, 0xe9, 0xff, 0x29, 0x5c, 0x7e, 0xff, 0x19, 0x31, 0x41, 0xff, 0x20, 0x45, 0x5e, 0xff, 0x20, 0x45, 0x5e, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x21, 0x47, 0x60, 0xff, 0x21, 0x47, 0x62, 0xff, 0x28, 0x43, 0x86, 0xff, 0x36, 0x3b, 0xd3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3a, 0xde, 0xff, 0x37, 0x3b, 0xd4, 0xff, 0x30, 0x3f, 0xad, 0xff, 0x28, 0x43, 0x86, 0xff, 0x22, 0x46, 0x67, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x23, 0x46, 0x6a, 0xff, 0x2a, 0x43, 0x8c, 0xff, 0x31, 0x3f, 0xb2, 0xff, 0x38, 0x3b, 0xd6, 0xff, 0x38, 0x39, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x35, 0x3b, 0xcb, 0xff, 0x27, 0x44, 0x7b, 0xff, 0x21, 0x47, 0x60, 0xff, 0x21, 0x47, 0x60, 0xff, 0x21, 0x46, 0x60, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x20, 0x45, 0x5e, 0xff, 0x20, 0x45, 0x5e, 0xff, 0x19, 0x31, 0x41, 0xff, 0x29, 0x5d, 0x7e, 0xff, 0x45, 0xa7, 0xe9, 0xff, 0x3f, 0x98, 0xd2, 0xff, 0x3a, 0x8a, 0xbf, 0xd6, 0x39, 0x8c, 0xc2, 0xa0, + 0x39, 0x8b, 0xc0, 0x51, 0x3b, 0x89, 0xc0, 0xd1, 0x40, 0x97, 0xd2, 0xff, 0x46, 0xa6, 0xe8, 0xff, 0x29, 0x5c, 0x7f, 0xff, 0x19, 0x32, 0x43, 0xff, 0x20, 0x46, 0x5e, 0xff, 0x21, 0x46, 0x60, 0xff, 0x21, 0x46, 0x60, 0xff, 0x21, 0x47, 0x62, 0xff, 0x2b, 0x41, 0x95, 0xff, 0x3b, 0x3b, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3a, 0xde, 0xff, 0x36, 0x3c, 0xcf, 0xff, 0x2d, 0x41, 0x9e, 0xff, 0x24, 0x47, 0x6e, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x25, 0x46, 0x74, 0xff, 0x2f, 0x42, 0xa4, 0xff, 0x38, 0x3d, 0xd0, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3c, 0xd9, 0xff, 0x28, 0x43, 0x89, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x46, 0x60, 0xff, 0x21, 0x46, 0x60, 0xff, 0x20, 0x46, 0x5e, 0xff, 0x19, 0x32, 0x43, 0xff, 0x29, 0x5c, 0x7f, 0xff, 0x46, 0xa7, 0xe8, 0xff, 0x3f, 0x97, 0xd2, 0xff, 0x39, 0x89, 0xbf, 0xd6, 0x39, 0x8b, 0xbf, 0xa0, + 0x39, 0x8b, 0xc0, 0x51, 0x3b, 0x89, 0xc0, 0xd1, 0x40, 0x97, 0xd2, 0xff, 0x46, 0xa7, 0xe9, 0xff, 0x29, 0x5e, 0x80, 0xff, 0x19, 0x31, 0x42, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x21, 0x47, 0x60, 0xff, 0x21, 0x47, 0x61, 0xff, 0x2a, 0x41, 0x97, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3c, 0xd3, 0xff, 0x2e, 0x41, 0xa3, 0xff, 0x24, 0x49, 0x6d, 0xff, 0x22, 0x49, 0x63, 0xff, 0x24, 0x4b, 0x66, 0xff, 0x23, 0x49, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x23, 0x4a, 0x66, 0xff, 0x23, 0x4a, 0x66, 0xff, 0x21, 0x49, 0x63, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x24, 0x4a, 0x65, 0xff, 0x23, 0x49, 0x64, 0xff, 0x22, 0x49, 0x63, 0xff, 0x26, 0x49, 0x71, 0xff, 0x30, 0x3f, 0xaf, 0xff, 0x38, 0x3b, 0xd8, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3a, 0xdf, 0xff, 0x29, 0x43, 0x8a, 0xff, 0x21, 0x47, 0x62, 0xff, 0x21, 0x47, 0x60, 0xff, 0x21, 0x47, 0x60, 0xff, 0x20, 0x45, 0x5f, 0xff, 0x19, 0x31, 0x42, 0xff, 0x29, 0x5e, 0x80, 0xff, 0x46, 0xa7, 0xe9, 0xff, 0x3f, 0x97, 0xd2, 0xff, 0x39, 0x89, 0xbd, 0xd6, 0x39, 0x8b, 0xc1, 0xa0, + 0x39, 0x8b, 0xc0, 0x51, 0x39, 0x89, 0xc0, 0xd1, 0x3e, 0x97, 0xd2, 0xff, 0x45, 0xa7, 0xe8, 0xff, 0x29, 0x5e, 0x7f, 0xff, 0x19, 0x32, 0x44, 0xff, 0x21, 0x47, 0x60, 0xff, 0x21, 0x47, 0x61, 0xff, 0x2c, 0x42, 0x97, 0xff, 0x39, 0x39, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x33, 0x3f, 0xbb, 0xff, 0x29, 0x47, 0x83, 0xff, 0x22, 0x49, 0x64, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x25, 0x4d, 0x67, 0xff, 0x1c, 0x44, 0x5c, 0xff, 0x1c, 0x47, 0x62, 0xff, 0x1c, 0x47, 0x63, 0xff, 0x1d, 0x45, 0x5e, 0xff, 0x24, 0x4c, 0x65, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x24, 0x4c, 0x66, 0xff, 0x22, 0x49, 0x63, 0xff, 0x1a, 0x42, 0x5d, 0xff, 0x1e, 0x49, 0x67, 0xff, 0x19, 0x42, 0x5c, 0xff, 0x20, 0x49, 0x62, 0xff, 0x25, 0x4d, 0x67, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x24, 0x4c, 0x66, 0xff, 0x1d, 0x45, 0x5e, 0xff, 0x1c, 0x47, 0x62, 0xff, 0x1d, 0x49, 0x65, 0xff, 0x1a, 0x42, 0x5b, 0xff, 0x24, 0x4c, 0x66, 0xff, 0x2b, 0x46, 0x8d, 0xff, 0x35, 0x3d, 0xc8, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x39, 0xdf, 0xff, 0x2b, 0x45, 0x8a, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x47, 0x60, 0xff, 0x19, 0x32, 0x44, 0xff, 0x29, 0x5e, 0x7f, 0xff, 0x45, 0xa7, 0xe8, 0xff, 0x3e, 0x97, 0xd2, 0xff, 0x39, 0x89, 0xbf, 0xd6, 0x39, 0x8b, 0xbf, 0xa0, + 0x39, 0x8b, 0xc0, 0x51, 0x39, 0x89, 0xc0, 0xd1, 0x3e, 0x97, 0xd2, 0xff, 0x45, 0xa7, 0xe8, 0xff, 0x29, 0x5e, 0x7f, 0xff, 0x19, 0x32, 0x44, 0xff, 0x21, 0x47, 0x60, 0xff, 0x27, 0x43, 0x87, 0xff, 0x3b, 0x3b, 0xe0, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe0, 0xff, 0x1a, 0x38, 0x7a, 0xff, 0x28, 0x50, 0x69, 0xff, 0x23, 0x4c, 0x66, 0xff, 0x28, 0x4f, 0x6a, 0xff, 0x1a, 0x42, 0x5d, 0xff, 0x00, 0x28, 0x47, 0xff, 0x23, 0x4c, 0x68, 0xff, 0x24, 0x4d, 0x69, 0xff, 0x05, 0x2d, 0x4b, 0xff, 0x1c, 0x43, 0x5d, 0xff, 0x25, 0x4d, 0x67, 0xff, 0x24, 0x4c, 0x66, 0xff, 0x27, 0x4e, 0x68, 0xff, 0x0b, 0x35, 0x51, 0xff, 0x0c, 0x37, 0x56, 0xff, 0x2f, 0x58, 0x76, 0xff, 0x0f, 0x38, 0x58, 0xff, 0x08, 0x30, 0x4b, 0xff, 0x26, 0x4d, 0x67, 0xff, 0x26, 0x4d, 0x68, 0xff, 0x25, 0x4c, 0x67, 0xff, 0x1c, 0x43, 0x5e, 0xff, 0x04, 0x2e, 0x4a, 0xff, 0x22, 0x4d, 0x6b, 0xff, 0x29, 0x53, 0x70, 0xff, 0x01, 0x2c, 0x4b, 0xff, 0x17, 0x3f, 0x59, 0xff, 0x27, 0x4e, 0x68, 0xff, 0x26, 0x48, 0x75, 0xff, 0x34, 0x41, 0xba, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x39, 0x3c, 0xda, 0xff, 0x28, 0x47, 0x7e, 0xff, 0x21, 0x47, 0x60, 0xff, 0x21, 0x47, 0x60, 0xff, 0x19, 0x33, 0x44, 0xff, 0x29, 0x5c, 0x7f, 0xff, 0x45, 0xa6, 0xe8, 0xff, 0x3e, 0x97, 0xd2, 0xff, 0x39, 0x89, 0xbf, 0xd6, 0x39, 0x8b, 0xbf, 0xa0, + 0x39, 0x8b, 0xc0, 0x51, 0x39, 0x89, 0xbe, 0xd1, 0x3e, 0x97, 0xd1, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x29, 0x5c, 0x7f, 0xff, 0x19, 0x33, 0x44, 0xff, 0x25, 0x45, 0x74, 0xff, 0x35, 0x3a, 0xd4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3f, 0xcc, 0xff, 0x17, 0x34, 0x77, 0xff, 0x2a, 0x51, 0x6c, 0xff, 0x19, 0x40, 0x5a, 0xff, 0x0f, 0x38, 0x54, 0xff, 0x7a, 0xa3, 0xc0, 0xff, 0x4b, 0x5b, 0x66, 0xff, 0x49, 0x5c, 0x66, 0xff, 0x65, 0x90, 0xaa, 0xff, 0x17, 0x40, 0x5d, 0xff, 0x20, 0x48, 0x63, 0xff, 0x28, 0x4f, 0x6a, 0xff, 0x09, 0x30, 0x4b, 0xff, 0x3a, 0x64, 0x82, 0xff, 0x7b, 0x97, 0xaa, 0xff, 0x2d, 0x33, 0x36, 0xff, 0x78, 0x99, 0xa7, 0xff, 0x41, 0x70, 0x8c, 0xff, 0x07, 0x2d, 0x4a, 0xff, 0x27, 0x4e, 0x68, 0xff, 0x20, 0x47, 0x62, 0xff, 0x12, 0x3c, 0x59, 0xff, 0x68, 0x92, 0xad, 0xff, 0x4c, 0x5c, 0x64, 0xff, 0x38, 0x43, 0x49, 0xff, 0x81, 0xa7, 0xc1, 0xff, 0x17, 0x41, 0x5e, 0xff, 0x17, 0x3e, 0x58, 0xff, 0x2b, 0x52, 0x6c, 0xff, 0x15, 0x39, 0x5d, 0xff, 0x30, 0x40, 0xb1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x35, 0x3d, 0xca, 0xff, 0x25, 0x48, 0x6b, 0xff, 0x21, 0x47, 0x5f, 0xff, 0x19, 0x33, 0x44, 0xff, 0x29, 0x5c, 0x7f, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x3e, 0x97, 0xd1, 0xff, 0x39, 0x89, 0xbd, 0xd6, 0x39, 0x8b, 0xbf, 0xa0, + 0x39, 0x8b, 0xc0, 0x51, 0x39, 0x89, 0xbe, 0xd1, 0x3e, 0x97, 0xd1, 0xff, 0x45, 0xa7, 0xe7, 0xff, 0x29, 0x5c, 0x7f, 0xff, 0x19, 0x33, 0x45, 0xff, 0x35, 0x3f, 0xc0, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x33, 0x39, 0xcf, 0xff, 0x21, 0x3d, 0x80, 0xff, 0x03, 0x2b, 0x4a, 0xff, 0x5e, 0x82, 0x99, 0xff, 0xff, 0xff, 0xff, 0xff, 0x53, 0x5f, 0x66, 0xff, 0x52, 0x62, 0x6c, 0xff, 0xe4, 0xfe, 0xff, 0xff, 0x57, 0x7c, 0x94, 0xff, 0x13, 0x3b, 0x57, 0xff, 0x19, 0x3f, 0x5a, 0xff, 0x0b, 0x36, 0x56, 0xff, 0xbd, 0xd9, 0xe5, 0xff, 0xd4, 0xdf, 0xda, 0xff, 0x15, 0x19, 0x18, 0xff, 0xc3, 0xcb, 0xc6, 0xff, 0xd0, 0xdf, 0xea, 0xff, 0x14, 0x40, 0x5f, 0xff, 0x10, 0x39, 0x54, 0xff, 0x12, 0x3a, 0x57, 0xff, 0x4f, 0x79, 0x91, 0xff, 0xed, 0xff, 0xff, 0xff, 0x57, 0x60, 0x5e, 0xff, 0x32, 0x36, 0x36, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6d, 0x8f, 0xa9, 0xff, 0x09, 0x34, 0x51, 0xff, 0x19, 0x41, 0x5b, 0xff, 0x05, 0x2d, 0x4c, 0xff, 0x89, 0xaa, 0xc5, 0xff, 0x7f, 0x87, 0xed, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x32, 0x41, 0xb2, 0xff, 0x21, 0x47, 0x60, 0xff, 0x19, 0x33, 0x44, 0xff, 0x29, 0x5c, 0x7f, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x3e, 0x97, 0xd1, 0xff, 0x39, 0x89, 0xbd, 0xd6, 0x39, 0x8b, 0xbf, 0xa0, + 0x39, 0x8b, 0xc0, 0x51, 0x39, 0x87, 0xbe, 0xd1, 0x3f, 0x96, 0xd1, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x2a, 0x5d, 0x80, 0xff, 0x28, 0x36, 0x87, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3c, 0xdf, 0xff, 0x4f, 0x54, 0xe6, 0xff, 0x3c, 0x3d, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x33, 0x38, 0xce, 0xff, 0x1b, 0x38, 0x7e, 0xff, 0x96, 0xb8, 0xc9, 0xff, 0xdf, 0xff, 0xff, 0xff, 0x9d, 0xc0, 0xd0, 0xff, 0x9e, 0xc2, 0xd1, 0xff, 0xd2, 0xf3, 0xff, 0xff, 0x87, 0xa9, 0xc0, 0xff, 0x14, 0x3c, 0x57, 0xff, 0x06, 0x2e, 0x49, 0xff, 0x3e, 0x64, 0x81, 0xff, 0xd3, 0xf2, 0xfa, 0xff, 0xc1, 0xe5, 0xef, 0xff, 0x8c, 0xb1, 0xc1, 0xff, 0xbf, 0xde, 0xee, 0xff, 0xe0, 0xf9, 0xff, 0xff, 0x44, 0x6a, 0x85, 0xff, 0x00, 0x29, 0x47, 0xff, 0x0f, 0x37, 0x54, 0xff, 0x84, 0xa7, 0xb8, 0xff, 0xd8, 0xfd, 0xff, 0xff, 0x9b, 0xc0, 0xd2, 0xff, 0x96, 0xb9, 0xc7, 0xff, 0xd7, 0xf4, 0xff, 0xff, 0xa4, 0xc4, 0xd9, 0xff, 0x19, 0x40, 0x5c, 0xff, 0x00, 0x28, 0x45, 0xff, 0x24, 0x49, 0x66, 0xff, 0xbd, 0xdd, 0xeb, 0xff, 0xc6, 0xe8, 0xfd, 0xff, 0x54, 0x5f, 0xda, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x29, 0x44, 0x88, 0xff, 0x1a, 0x33, 0x45, 0xff, 0x2a, 0x5d, 0x80, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x3f, 0x96, 0xd1, 0xff, 0x39, 0x88, 0xbd, 0xd6, 0x39, 0x8b, 0xbf, 0xa0, + 0x39, 0x8b, 0xc0, 0x51, 0x39, 0x87, 0xbe, 0xd1, 0x3f, 0x96, 0xd1, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x2b, 0x5a, 0x87, 0xff, 0x36, 0x38, 0xd4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x44, 0xc6, 0xff, 0x9d, 0xb7, 0xea, 0xff, 0x72, 0x80, 0xec, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x35, 0x3a, 0xd1, 0xff, 0x66, 0x7e, 0xbd, 0xff, 0xcb, 0xec, 0xff, 0xff, 0xc8, 0xf1, 0xff, 0xff, 0xc5, 0xed, 0xfd, 0xff, 0xc2, 0xe3, 0xfc, 0xff, 0x6c, 0x8f, 0xa6, 0xff, 0x14, 0x3c, 0x57, 0xff, 0x0d, 0x36, 0x51, 0xff, 0x2f, 0x54, 0x6d, 0xff, 0xaf, 0xd1, 0xe7, 0xff, 0xcb, 0xf1, 0xff, 0xff, 0xc9, 0xf4, 0xfe, 0xff, 0xcb, 0xf1, 0xff, 0xff, 0xbb, 0xdc, 0xf0, 0xff, 0x35, 0x59, 0x73, 0xff, 0x08, 0x31, 0x4d, 0xff, 0x12, 0x39, 0x55, 0xff, 0x67, 0x8a, 0xa1, 0xff, 0xc2, 0xe1, 0xfb, 0xff, 0xc3, 0xec, 0xfb, 0xff, 0xc9, 0xf2, 0xff, 0xff, 0xc7, 0xeb, 0xff, 0xff, 0x82, 0xa4, 0xbb, 0xff, 0x15, 0x3c, 0x58, 0xff, 0x0a, 0x33, 0x4f, 0xff, 0x1a, 0x40, 0x5a, 0xff, 0x9e, 0xbe, 0xd5, 0xff, 0xcd, 0xef, 0xff, 0xff, 0xb6, 0xdb, 0xfa, 0xff, 0x4e, 0x53, 0xe5, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x35, 0x3c, 0xc9, 0xff, 0x1b, 0x33, 0x4b, 0xff, 0x2a, 0x5d, 0x80, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x3f, 0x96, 0xd1, 0xff, 0x39, 0x88, 0xbd, 0xd6, 0x39, 0x8b, 0xbf, 0xa0, + 0x39, 0x8b, 0xc0, 0x51, 0x39, 0x87, 0xbe, 0xd1, 0x3f, 0x96, 0xd1, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x33, 0x49, 0xb8, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3c, 0xd4, 0xff, 0x1f, 0x3d, 0x73, 0xff, 0x65, 0x86, 0x9d, 0xff, 0xac, 0xc7, 0xe8, 0xff, 0x65, 0x6e, 0xe9, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3c, 0xd4, 0xff, 0x7d, 0x94, 0xd1, 0xff, 0xc7, 0xe5, 0xfa, 0xff, 0xbf, 0xdd, 0xf2, 0xff, 0x8d, 0xad, 0xc1, 0xff, 0x2a, 0x4f, 0x67, 0xff, 0x1b, 0x43, 0x5d, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x0d, 0x35, 0x4f, 0xff, 0x56, 0x78, 0x8f, 0xff, 0xba, 0xd7, 0xeb, 0xff, 0xc8, 0xe5, 0xfa, 0xff, 0xbf, 0xdd, 0xf0, 0xff, 0x60, 0x81, 0x98, 0xff, 0x0e, 0x35, 0x50, 0xff, 0x1d, 0x45, 0x60, 0xff, 0x1b, 0x43, 0x5d, 0xff, 0x23, 0x49, 0x63, 0xff, 0x88, 0xa7, 0xbd, 0xff, 0xc1, 0xde, 0xf3, 0xff, 0xc5, 0xe3, 0xf8, 0xff, 0x9e, 0xbd, 0xd1, 0xff, 0x2d, 0x52, 0x6b, 0xff, 0x12, 0x3a, 0x56, 0xff, 0x23, 0x4a, 0x66, 0xff, 0x0c, 0x32, 0x4e, 0xff, 0x43, 0x67, 0x7d, 0xff, 0xac, 0xcb, 0xde, 0xff, 0xc6, 0xe3, 0xf9, 0xff, 0x97, 0xad, 0xeb, 0xff, 0x3b, 0x3c, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x29, 0x36, 0x8f, 0xff, 0x2a, 0x5d, 0x80, 0xff, 0x45, 0xa6, 0xe6, 0xff, 0x3f, 0x96, 0xd1, 0xff, 0x39, 0x88, 0xbd, 0xd6, 0x39, 0x8b, 0xbf, 0xa0, + 0x39, 0x8b, 0xbd, 0x51, 0x39, 0x87, 0xbd, 0xd1, 0x3f, 0x96, 0xd1, 0xff, 0x44, 0x9b, 0xe7, 0xff, 0x39, 0x3d, 0xda, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3a, 0xdf, 0xff, 0x30, 0x42, 0xa8, 0xff, 0x1b, 0x41, 0x5b, 0xff, 0x16, 0x3c, 0x54, 0xff, 0x40, 0x63, 0x78, 0xff, 0x55, 0x73, 0x94, 0xff, 0x38, 0x43, 0xbc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3b, 0xd5, 0xff, 0x4c, 0x64, 0xa2, 0xff, 0x51, 0x72, 0x89, 0xff, 0x24, 0x46, 0x5f, 0xff, 0x16, 0x3c, 0x56, 0xff, 0x24, 0x4b, 0x65, 0xff, 0x25, 0x4d, 0x68, 0xff, 0x1d, 0x45, 0x5f, 0xff, 0x12, 0x37, 0x50, 0xff, 0x3a, 0x5c, 0x73, 0xff, 0x5c, 0x7d, 0x91, 0xff, 0x3f, 0x60, 0x78, 0xff, 0x12, 0x36, 0x50, 0xff, 0x1b, 0x42, 0x5c, 0xff, 0x26, 0x4d, 0x68, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x15, 0x3c, 0x56, 0xff, 0x20, 0x43, 0x5c, 0xff, 0x50, 0x71, 0x87, 0xff, 0x57, 0x77, 0x8d, 0xff, 0x27, 0x4a, 0x61, 0xff, 0x12, 0x36, 0x51, 0xff, 0x21, 0x48, 0x64, 0xff, 0x26, 0x4c, 0x68, 0xff, 0x21, 0x47, 0x62, 0xff, 0x11, 0x36, 0x50, 0xff, 0x32, 0x53, 0x6b, 0xff, 0x56, 0x77, 0x8c, 0xff, 0x42, 0x65, 0x7a, 0xff, 0x2e, 0x3a, 0xb1, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x34, 0x39, 0xc5, 0xff, 0x2b, 0x5b, 0x86, 0xff, 0x45, 0xa6, 0xe7, 0xff, 0x3f, 0x96, 0xd1, 0xff, 0x39, 0x88, 0xbd, 0xd6, 0x39, 0x8b, 0xbe, 0xa0, + 0x39, 0x8b, 0xbd, 0x51, 0x39, 0x87, 0xbd, 0xd1, 0x3f, 0x96, 0xd1, 0xff, 0x40, 0x6e, 0xe4, 0xff, 0x39, 0x39, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x3d, 0xcc, 0xff, 0x22, 0x47, 0x69, 0xff, 0x22, 0x49, 0x63, 0xff, 0x1d, 0x43, 0x5c, 0xff, 0x0d, 0x33, 0x4a, 0xff, 0x09, 0x2d, 0x45, 0xff, 0x14, 0x36, 0x5a, 0xff, 0x33, 0x3e, 0xbb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x35, 0x39, 0xd1, 0xff, 0x17, 0x32, 0x71, 0xff, 0x19, 0x3d, 0x56, 0xff, 0x24, 0x49, 0x63, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x24, 0x4b, 0x65, 0xff, 0x20, 0x46, 0x60, 0xff, 0x0f, 0x35, 0x4e, 0xff, 0x07, 0x2c, 0x45, 0xff, 0x0e, 0x32, 0x4c, 0xff, 0x1f, 0x44, 0x5e, 0xff, 0x25, 0x4b, 0x65, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x24, 0x49, 0x64, 0xff, 0x1a, 0x3f, 0x57, 0xff, 0x0b, 0x30, 0x48, 0xff, 0x09, 0x2d, 0x48, 0xff, 0x16, 0x3b, 0x55, 0xff, 0x24, 0x49, 0x63, 0xff, 0x24, 0x4a, 0x65, 0xff, 0x22, 0x4a, 0x65, 0xff, 0x23, 0x4a, 0x66, 0xff, 0x23, 0x48, 0x61, 0xff, 0x12, 0x37, 0x50, 0xff, 0x06, 0x2d, 0x45, 0xff, 0x0c, 0x32, 0x4a, 0xff, 0x20, 0x41, 0x6a, 0xff, 0x39, 0x3b, 0xdd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3a, 0xdb, 0xff, 0x31, 0x4f, 0xa8, 0xff, 0x45, 0xa5, 0xe7, 0xff, 0x3f, 0x96, 0xd1, 0xff, 0x39, 0x88, 0xbd, 0xd6, 0x39, 0x8b, 0xbe, 0xa0, + 0x39, 0x8b, 0xbd, 0x51, 0x39, 0x87, 0xbd, 0xd1, 0x3e, 0x94, 0xd0, 0xff, 0x3c, 0x49, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3b, 0xdd, 0xff, 0x2e, 0x43, 0x9b, 0xff, 0x22, 0x49, 0x63, 0xff, 0x21, 0x48, 0x62, 0xff, 0x22, 0x48, 0x63, 0xff, 0x25, 0x4a, 0x64, 0xff, 0x25, 0x4a, 0x63, 0xff, 0x24, 0x4a, 0x63, 0xff, 0x23, 0x48, 0x69, 0xff, 0x33, 0x3f, 0xbd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3c, 0xd5, 0xff, 0x29, 0x45, 0x87, 0xff, 0x22, 0x48, 0x64, 0xff, 0x23, 0x4a, 0x64, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x48, 0x64, 0xff, 0x25, 0x4a, 0x64, 0xff, 0x25, 0x4a, 0x64, 0xff, 0x26, 0x4b, 0x63, 0xff, 0x23, 0x49, 0x63, 0xff, 0x22, 0x48, 0x64, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x23, 0x49, 0x65, 0xff, 0x22, 0x48, 0x64, 0xff, 0x24, 0x49, 0x64, 0xff, 0x25, 0x4a, 0x63, 0xff, 0x25, 0x4a, 0x63, 0xff, 0x24, 0x4a, 0x65, 0xff, 0x21, 0x49, 0x64, 0xff, 0x23, 0x49, 0x65, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x23, 0x49, 0x64, 0xff, 0x22, 0x48, 0x62, 0xff, 0x23, 0x4a, 0x63, 0xff, 0x24, 0x49, 0x63, 0xff, 0x24, 0x4a, 0x63, 0xff, 0x21, 0x48, 0x60, 0xff, 0x2f, 0x3f, 0xad, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x43, 0xc8, 0xff, 0x45, 0xa5, 0xe6, 0xff, 0x3f, 0x96, 0xd0, 0xff, 0x39, 0x88, 0xbd, 0xd6, 0x39, 0x8b, 0xbe, 0xa0, + 0x39, 0x8b, 0xbd, 0x51, 0x39, 0x87, 0xbd, 0xd2, 0x3d, 0x78, 0xd6, 0xff, 0x3b, 0x40, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x3b, 0xd3, 0xff, 0x22, 0x47, 0x68, 0xff, 0x22, 0x49, 0x63, 0xff, 0x22, 0x49, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x21, 0x48, 0x63, 0xff, 0x21, 0x49, 0x63, 0xff, 0x21, 0x49, 0x64, 0xff, 0x22, 0x4a, 0x63, 0xff, 0x23, 0x4a, 0x67, 0xff, 0x33, 0x3f, 0xbc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3c, 0xd5, 0xff, 0x29, 0x45, 0x87, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x23, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x23, 0x4a, 0x65, 0xff, 0x23, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x63, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x21, 0x49, 0x63, 0xff, 0x21, 0x49, 0x63, 0xff, 0x21, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x25, 0x46, 0x73, 0xff, 0x39, 0x3a, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3e, 0xd6, 0xff, 0x43, 0x8c, 0xe5, 0xff, 0x3f, 0x95, 0xd0, 0xff, 0x39, 0x88, 0xbd, 0xd6, 0x39, 0x89, 0xbe, 0xa0, + 0x39, 0x87, 0xbd, 0x51, 0x39, 0x86, 0xbd, 0xd2, 0x3c, 0x5e, 0xdb, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x31, 0x40, 0xae, 0xff, 0x21, 0x47, 0x61, 0xff, 0x22, 0x48, 0x62, 0xff, 0x22, 0x49, 0x63, 0xff, 0x22, 0x49, 0x63, 0xff, 0x22, 0x49, 0x63, 0xff, 0x22, 0x49, 0x63, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x23, 0x4a, 0x67, 0xff, 0x33, 0x3f, 0xbc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3c, 0xd5, 0xff, 0x29, 0x45, 0x88, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x49, 0x63, 0xff, 0x22, 0x49, 0x63, 0xff, 0x22, 0x49, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x63, 0xff, 0x32, 0x3d, 0xbc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe0, 0xff, 0x40, 0x72, 0xe5, 0xff, 0x3f, 0x93, 0xd1, 0xff, 0x39, 0x88, 0xbd, 0xd6, 0x39, 0x89, 0xbe, 0xa0, + 0x39, 0x87, 0xbd, 0x51, 0x39, 0x7d, 0xc3, 0xd7, 0x3b, 0x4b, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3a, 0xdd, 0xff, 0x28, 0x44, 0x83, 0xff, 0x21, 0x47, 0x60, 0xff, 0x21, 0x47, 0x61, 0xff, 0x21, 0x48, 0x62, 0xff, 0x22, 0x48, 0x63, 0xff, 0x22, 0x48, 0x62, 0xff, 0x22, 0x48, 0x62, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x23, 0x49, 0x67, 0xff, 0x33, 0x3e, 0xbe, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3c, 0xd4, 0xff, 0x29, 0x45, 0x87, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x48, 0x62, 0xff, 0x22, 0x48, 0x62, 0xff, 0x22, 0x49, 0x63, 0xff, 0x21, 0x48, 0x62, 0xff, 0x21, 0x47, 0x62, 0xff, 0x2a, 0x42, 0x8f, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3e, 0x5d, 0xe3, 0xff, 0x3f, 0x8a, 0xd2, 0xff, 0x39, 0x88, 0xbd, 0xd6, 0x39, 0x89, 0xbf, 0xa0, + 0x39, 0x87, 0xbd, 0x51, 0x3a, 0x6b, 0xcb, 0xe1, 0x3a, 0x45, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3b, 0xd6, 0xff, 0x23, 0x49, 0x68, 0xff, 0x22, 0x49, 0x64, 0xff, 0x22, 0x4a, 0x65, 0xff, 0x22, 0x4a, 0x65, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4b, 0x66, 0xff, 0x22, 0x4b, 0x66, 0xff, 0x23, 0x4b, 0x66, 0xff, 0x23, 0x4b, 0x66, 0xff, 0x23, 0x4b, 0x66, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x24, 0x4b, 0x68, 0xff, 0x33, 0x3f, 0xbd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3c, 0xd4, 0xff, 0x2a, 0x46, 0x88, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x65, 0xff, 0x23, 0x4b, 0x66, 0xff, 0x23, 0x4b, 0x66, 0xff, 0x23, 0x4b, 0x66, 0xff, 0x22, 0x4b, 0x66, 0xff, 0x22, 0x4b, 0x66, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x22, 0x4a, 0x65, 0xff, 0x22, 0x4a, 0x64, 0xff, 0x25, 0x47, 0x73, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x50, 0xe3, 0xff, 0x3d, 0x75, 0xd5, 0xff, 0x39, 0x88, 0xbc, 0xd6, 0x39, 0x89, 0xbf, 0xa0, + 0x39, 0x8b, 0xbd, 0x51, 0x3b, 0x5a, 0xd2, 0xea, 0x3a, 0x40, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x31, 0x39, 0xb6, 0xff, 0x1c, 0x37, 0x4b, 0xff, 0x1c, 0x37, 0x4b, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1c, 0x39, 0x4c, 0xff, 0x1b, 0x39, 0x4c, 0xff, 0x1b, 0x3a, 0x4e, 0xff, 0x1b, 0x3a, 0x4e, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1d, 0x3a, 0x50, 0xff, 0x31, 0x3a, 0xb5, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3a, 0xd2, 0xff, 0x25, 0x39, 0x79, 0xff, 0x1c, 0x3a, 0x4d, 0xff, 0x1c, 0x3a, 0x4d, 0xff, 0x1c, 0x3a, 0x4d, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1c, 0x3a, 0x4d, 0xff, 0x1c, 0x3a, 0x4d, 0xff, 0x1c, 0x3a, 0x4d, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4e, 0xff, 0x1c, 0x39, 0x4d, 0xff, 0x1b, 0x3a, 0x4e, 0xff, 0x1b, 0x3a, 0x4e, 0xff, 0x1b, 0x39, 0x4c, 0xff, 0x1c, 0x39, 0x4c, 0xff, 0x1c, 0x39, 0x4c, 0xff, 0x1d, 0x37, 0x51, 0xff, 0x34, 0x39, 0xc5, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x47, 0xe3, 0xff, 0x3c, 0x64, 0xda, 0xff, 0x39, 0x87, 0xbc, 0xd6, 0x39, 0x89, 0xbf, 0xa0, + 0x39, 0x8b, 0xbd, 0x51, 0x3a, 0x50, 0xd8, 0xf1, 0x3a, 0x3c, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x2e, 0x43, 0xa6, 0xff, 0x22, 0x4d, 0x69, 0xff, 0x23, 0x4d, 0x69, 0xff, 0x24, 0x4d, 0x69, 0xff, 0x24, 0x4d, 0x69, 0xff, 0x24, 0x4d, 0x69, 0xff, 0x24, 0x4e, 0x6a, 0xff, 0x24, 0x4e, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x25, 0x4e, 0x6f, 0xff, 0x33, 0x40, 0xbe, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3d, 0xd3, 0xff, 0x2a, 0x49, 0x8d, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4f, 0x6a, 0xff, 0x24, 0x4e, 0x6a, 0xff, 0x24, 0x4e, 0x6a, 0xff, 0x24, 0x4d, 0x69, 0xff, 0x24, 0x4d, 0x69, 0xff, 0x24, 0x4d, 0x69, 0xff, 0x24, 0x4c, 0x6c, 0xff, 0x31, 0x41, 0xb5, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x40, 0xe2, 0xff, 0x3b, 0x57, 0xdc, 0xff, 0x39, 0x87, 0xbc, 0xd6, 0x39, 0x89, 0xbe, 0xa0, + 0x39, 0x87, 0xbd, 0x51, 0x3a, 0x49, 0xdb, 0xf5, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3f, 0x7b, 0xe3, 0xff, 0x44, 0xa4, 0xe4, 0xff, 0x44, 0xa4, 0xe4, 0xff, 0x44, 0xa4, 0xe4, 0xff, 0x44, 0xa4, 0xe4, 0xff, 0x44, 0xa4, 0xe4, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0x9f, 0xe5, 0xff, 0x3d, 0x5b, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x46, 0xe1, 0xff, 0x41, 0x84, 0xe4, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe5, 0xff, 0x44, 0xa4, 0xe4, 0xff, 0x44, 0xa4, 0xe4, 0xff, 0x44, 0xa4, 0xe4, 0xff, 0x44, 0xa2, 0xe4, 0xff, 0x3f, 0x70, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x3a, 0x4d, 0xdc, 0xff, 0x39, 0x89, 0xbf, 0xd6, 0x39, 0x87, 0xbe, 0xa0, + 0x39, 0x87, 0xbd, 0x51, 0x3a, 0x44, 0xde, 0xf9, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x44, 0x8b, 0xec, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x46, 0xa6, 0xef, 0xff, 0x3e, 0x5d, 0xe6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x48, 0xe3, 0xff, 0x43, 0x8a, 0xec, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xac, 0xf0, 0xff, 0x47, 0xab, 0xf0, 0xff, 0x43, 0x80, 0xeb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x47, 0xde, 0xff, 0x39, 0x89, 0xbf, 0xd6, 0x39, 0x87, 0xbe, 0xa0, + 0x39, 0x87, 0xbd, 0x51, 0x3a, 0x40, 0xe0, 0xfb, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3d, 0xe2, 0xff, 0x42, 0x8a, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x42, 0x99, 0xdf, 0xff, 0x3d, 0x5a, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x47, 0xe2, 0xff, 0x40, 0x82, 0xe0, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x41, 0x80, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x42, 0xdf, 0xff, 0x39, 0x89, 0xbd, 0xd6, 0x39, 0x87, 0xbe, 0xa0, + 0x39, 0x87, 0xbd, 0x51, 0x3a, 0x3f, 0xe0, 0xfc, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3d, 0xe2, 0xff, 0x42, 0x8c, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x42, 0x98, 0xdf, 0xff, 0x3d, 0x5b, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x47, 0xe2, 0xff, 0x40, 0x83, 0xe0, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x41, 0x83, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x40, 0xe0, 0xff, 0x39, 0x89, 0xbd, 0xd6, 0x39, 0x87, 0xbe, 0xa0, + 0x39, 0x87, 0xbd, 0x51, 0x3a, 0x41, 0xdf, 0xfa, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x42, 0x89, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x42, 0x98, 0xdf, 0xff, 0x3d, 0x5b, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x47, 0xe2, 0xff, 0x40, 0x84, 0xe0, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa1, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x41, 0x7f, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x42, 0xdf, 0xff, 0x39, 0x89, 0xbd, 0xd6, 0x39, 0x87, 0xbc, 0xa0, + 0x39, 0x87, 0xbd, 0x51, 0x3a, 0x45, 0xdd, 0xf8, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x41, 0x81, 0xe0, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x42, 0x97, 0xdf, 0xff, 0x3d, 0x5a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x45, 0xe2, 0xff, 0x41, 0x84, 0xe0, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0x9f, 0xdf, 0xff, 0x3f, 0x77, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x47, 0xde, 0xff, 0x39, 0x88, 0xbd, 0xd6, 0x39, 0x87, 0xbc, 0xa0, + 0x39, 0x87, 0xbd, 0x51, 0x39, 0x49, 0xdb, 0xf4, 0x3a, 0x3b, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3f, 0x77, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x44, 0xa0, 0xde, 0xff, 0x45, 0xa1, 0xdf, 0xff, 0x45, 0xa1, 0xdf, 0xff, 0x45, 0xa1, 0xdf, 0xff, 0x44, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x45, 0xa1, 0xde, 0xff, 0x45, 0xa1, 0xde, 0xff, 0x45, 0xa1, 0xde, 0xff, 0x45, 0xa1, 0xde, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x42, 0x97, 0xdf, 0xff, 0x3d, 0x5a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x45, 0xe2, 0xff, 0x42, 0x84, 0xe0, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x44, 0xa0, 0xde, 0xff, 0x45, 0xa1, 0xdf, 0xff, 0x45, 0xa1, 0xdf, 0xff, 0x45, 0xa1, 0xdf, 0xff, 0x45, 0xa1, 0xde, 0xff, 0x45, 0xa1, 0xde, 0xff, 0x45, 0xa0, 0xde, 0xff, 0x44, 0xa0, 0xdf, 0xff, 0x44, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xdf, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0x9e, 0xdf, 0xff, 0x3e, 0x6d, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x3a, 0x4d, 0xdb, 0xff, 0x39, 0x88, 0xbd, 0xd6, 0x39, 0x87, 0xbc, 0xa0, + 0x39, 0x87, 0xbd, 0x51, 0x3a, 0x52, 0xd8, 0xef, 0x3a, 0x3d, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x3e, 0x67, 0xe0, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x44, 0xa0, 0xde, 0xff, 0x45, 0xa0, 0xde, 0xff, 0x39, 0x9c, 0xdc, 0xff, 0x31, 0x99, 0xdb, 0xff, 0x32, 0x98, 0xdb, 0xff, 0x33, 0x98, 0xdb, 0xff, 0x40, 0x9e, 0xdd, 0xff, 0x46, 0xa1, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x45, 0xa1, 0xde, 0xff, 0x41, 0x9f, 0xdd, 0xff, 0x35, 0x99, 0xdb, 0xff, 0x34, 0x98, 0xdb, 0xff, 0x32, 0x97, 0xdb, 0xff, 0x34, 0x99, 0xdb, 0xff, 0x43, 0x9f, 0xdd, 0xff, 0x45, 0xa1, 0xde, 0xff, 0x42, 0x99, 0xde, 0xff, 0x3d, 0x5b, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x44, 0xe1, 0xff, 0x43, 0x84, 0xdf, 0xff, 0x46, 0xa1, 0xde, 0xff, 0x38, 0x9b, 0xdc, 0xff, 0x31, 0x98, 0xdb, 0xff, 0x33, 0x99, 0xdb, 0xff, 0x34, 0x99, 0xdb, 0xff, 0x34, 0x99, 0xdb, 0xff, 0x34, 0x99, 0xdb, 0xff, 0x35, 0x99, 0xdb, 0xff, 0x3b, 0x9c, 0xdd, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x45, 0xa1, 0xdf, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0x9d, 0xde, 0xff, 0x3d, 0x5e, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3f, 0xe1, 0xff, 0x3b, 0x56, 0xd8, 0xff, 0x39, 0x88, 0xbd, 0xd6, 0x39, 0x87, 0xbc, 0xa0, + 0x39, 0x87, 0xba, 0x51, 0x3a, 0x5c, 0xd2, 0xe9, 0x3a, 0x40, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x55, 0xe1, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x46, 0xa0, 0xde, 0xff, 0x3e, 0x9c, 0xdd, 0xff, 0x2d, 0x95, 0xd9, 0xff, 0x34, 0x98, 0xdb, 0xff, 0x35, 0x9a, 0xdc, 0xff, 0x31, 0x97, 0xdb, 0xff, 0x2d, 0x95, 0xda, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x47, 0xa2, 0xde, 0xff, 0x42, 0xa0, 0xde, 0xff, 0x46, 0xa1, 0xdf, 0xff, 0x3c, 0x9c, 0xde, 0xff, 0x32, 0x97, 0xdb, 0xff, 0x34, 0x98, 0xdb, 0xff, 0x35, 0x99, 0xdb, 0xff, 0x2f, 0x96, 0xdb, 0xff, 0x36, 0x9a, 0xdc, 0xff, 0x48, 0xa2, 0xde, 0xff, 0x45, 0xa1, 0xde, 0xff, 0x45, 0x9c, 0xde, 0xff, 0x3c, 0x58, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x45, 0xe2, 0xff, 0x41, 0x83, 0xdf, 0xff, 0x30, 0x96, 0xda, 0xff, 0x33, 0x98, 0xda, 0xff, 0x34, 0x98, 0xdb, 0xff, 0x33, 0x98, 0xdb, 0xff, 0x33, 0x98, 0xdb, 0xff, 0x35, 0x98, 0xdb, 0xff, 0x33, 0x98, 0xdb, 0xff, 0x24, 0x91, 0xd8, 0xff, 0x21, 0x8f, 0xd8, 0xff, 0x3c, 0x9c, 0xdd, 0xff, 0x46, 0xa2, 0xdf, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0x9c, 0xde, 0xff, 0x3b, 0x4a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x45, 0xe0, 0xff, 0x3c, 0x64, 0xd3, 0xff, 0x39, 0x88, 0xbd, 0xd6, 0x39, 0x87, 0xba, 0xa0, + 0x39, 0x87, 0xba, 0x51, 0x3a, 0x6c, 0xc9, 0xe0, 0x3a, 0x45, 0xde, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x43, 0xe2, 0xff, 0x42, 0x9a, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x3c, 0x9c, 0xdd, 0xff, 0x38, 0x9b, 0xdc, 0xff, 0x9d, 0xce, 0xee, 0xff, 0xd5, 0xe9, 0xf9, 0xff, 0xcb, 0xe4, 0xf6, 0xff, 0xd1, 0xe9, 0xf6, 0xff, 0x7b, 0xbd, 0xe8, 0xff, 0x2c, 0x95, 0xdb, 0xff, 0x40, 0x9e, 0xde, 0xff, 0x48, 0xa3, 0xde, 0xff, 0x31, 0x97, 0xdb, 0xff, 0x58, 0xaa, 0xe3, 0xff, 0xc4, 0xe1, 0xf5, 0xff, 0xce, 0xe7, 0xf6, 0xff, 0xd3, 0xe9, 0xf7, 0xff, 0xc9, 0xe4, 0xf6, 0xff, 0x51, 0xa7, 0xe1, 0xff, 0x2a, 0x93, 0xd9, 0xff, 0x46, 0xa2, 0xde, 0xff, 0x3f, 0x9e, 0xde, 0xff, 0x25, 0x8d, 0xd9, 0xff, 0x51, 0x63, 0xe4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x44, 0xe1, 0xff, 0x88, 0xa7, 0xeb, 0xff, 0xdb, 0xed, 0xf8, 0xff, 0xc7, 0xe3, 0xf5, 0xff, 0xc5, 0xe2, 0xf5, 0xff, 0xc7, 0xe2, 0xf5, 0xff, 0xc9, 0xe3, 0xf5, 0xff, 0xc5, 0xe1, 0xf5, 0xff, 0xb4, 0xda, 0xf2, 0xff, 0x6b, 0xb4, 0xe5, 0xff, 0x25, 0x90, 0xd9, 0xff, 0x3e, 0x9d, 0xdd, 0xff, 0x46, 0xa1, 0xde, 0xff, 0x42, 0x91, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x4e, 0xde, 0xff, 0x3b, 0x74, 0xce, 0xff, 0x39, 0x88, 0xbd, 0xd6, 0x39, 0x87, 0xba, 0xa0, + 0x39, 0x87, 0xba, 0x51, 0x39, 0x80, 0xc1, 0xd6, 0x3a, 0x4c, 0xdc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3e, 0xe3, 0xff, 0x40, 0x7f, 0xdf, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x42, 0xa0, 0xde, 0xff, 0x43, 0xa0, 0xde, 0xff, 0x30, 0x97, 0xdb, 0xff, 0x5e, 0xad, 0xe3, 0xff, 0xfb, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd3, 0xe9, 0xf7, 0xff, 0x33, 0x98, 0xdb, 0xff, 0x30, 0x96, 0xda, 0xff, 0x4e, 0xa5, 0xdf, 0xff, 0x24, 0x8f, 0xd8, 0xff, 0x72, 0xb8, 0xe6, 0xff, 0xfb, 0xfd, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x95, 0xc8, 0xed, 0xff, 0x16, 0x89, 0xd6, 0xff, 0x40, 0x9f, 0xdd, 0xff, 0x2e, 0x94, 0xda, 0xff, 0x38, 0x9a, 0xdd, 0xff, 0xdc, 0xeb, 0xfa, 0xff, 0x75, 0x75, 0xeb, 0xff, 0x3b, 0x3b, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x4c, 0x4d, 0xe5, 0xff, 0xc7, 0xc7, 0xf7, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0x89, 0xc3, 0xea, 0xff, 0x2d, 0x94, 0xd9, 0xff, 0x44, 0xa0, 0xde, 0xff, 0x41, 0x77, 0xdf, 0xff, 0x39, 0x39, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x5a, 0xdb, 0xff, 0x3b, 0x85, 0xc8, 0xff, 0x38, 0x88, 0xbd, 0xd6, 0x38, 0x86, 0xba, 0xa0, + 0x39, 0x87, 0xba, 0x51, 0x39, 0x86, 0xbd, 0xd2, 0x3a, 0x5e, 0xd6, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x3c, 0x5c, 0xe0, 0xff, 0x43, 0x9f, 0xdd, 0xff, 0x43, 0x9f, 0xdd, 0xff, 0x42, 0x9e, 0xdd, 0xff, 0x2b, 0x93, 0xd9, 0xff, 0x88, 0xc2, 0xe9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xf9, 0xfd, 0xff, 0x59, 0xaa, 0xe1, 0xff, 0x28, 0x91, 0xd8, 0xff, 0x4d, 0xa4, 0xde, 0xff, 0x28, 0x90, 0xd8, 0xff, 0x6d, 0xb4, 0xe4, 0xff, 0xf6, 0xfa, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc9, 0xe4, 0xf6, 0xff, 0x2b, 0x94, 0xd9, 0xff, 0x33, 0x97, 0xda, 0xff, 0x20, 0x8d, 0xd6, 0xff, 0x65, 0xb0, 0xe4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xfa, 0xfe, 0xff, 0x74, 0x74, 0xeb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x50, 0x50, 0xe5, 0xff, 0xc7, 0xc7, 0xf6, 0xff, 0xdd, 0xed, 0xf9, 0xff, 0xce, 0xe6, 0xf6, 0xff, 0xcd, 0xe5, 0xf6, 0xff, 0xe3, 0xf0, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xf6, 0xfb, 0xff, 0x4c, 0xa4, 0xde, 0xff, 0x31, 0x94, 0xda, 0xff, 0x3e, 0x53, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3d, 0x6d, 0xd7, 0xff, 0x3b, 0x8c, 0xc5, 0xff, 0x39, 0x88, 0xbc, 0xd6, 0x39, 0x86, 0xba, 0xa0, + 0x39, 0x87, 0xba, 0x51, 0x38, 0x87, 0xbc, 0xd1, 0x3b, 0x78, 0xcc, 0xff, 0x3a, 0x3f, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x43, 0xe2, 0xff, 0x41, 0x96, 0xdd, 0xff, 0x42, 0x9f, 0xdd, 0xff, 0x3f, 0x9d, 0xdd, 0xff, 0x31, 0x95, 0xda, 0xff, 0xb1, 0xd7, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe9, 0xf5, 0xfb, 0xff, 0xcb, 0xe5, 0xf6, 0xff, 0xf7, 0xfb, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0xc2, 0xe9, 0xff, 0x23, 0x8f, 0xd6, 0xff, 0x47, 0xa1, 0xde, 0xff, 0x29, 0x92, 0xd9, 0xff, 0x6c, 0xb4, 0xe4, 0xff, 0xf7, 0xfa, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xfb, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xf9, 0xfd, 0xff, 0x56, 0xa9, 0xe1, 0xff, 0x1e, 0x8c, 0xd7, 0xff, 0x22, 0x8e, 0xd8, 0xff, 0x9d, 0xcd, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xfc, 0xfe, 0xff, 0xf5, 0xf7, 0xfd, 0xff, 0x72, 0x72, 0xea, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x4f, 0x4f, 0xe5, 0xff, 0x52, 0x8b, 0xe2, 0xff, 0x25, 0x91, 0xd9, 0xff, 0x2e, 0x96, 0xda, 0xff, 0x40, 0x9d, 0xdc, 0xff, 0xda, 0xeb, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfd, 0xfe, 0xff, 0x6f, 0xb6, 0xe6, 0xff, 0x29, 0x80, 0xda, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x47, 0xe0, 0xff, 0x3d, 0x83, 0xd1, 0xff, 0x3b, 0x8d, 0xc4, 0xff, 0x38, 0x88, 0xbc, 0xd6, 0x38, 0x86, 0xba, 0xa0, + 0x39, 0x87, 0xba, 0x51, 0x38, 0x87, 0xbc, 0xd1, 0x3b, 0x8d, 0xc4, 0xff, 0x3b, 0x49, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3d, 0x65, 0xdf, 0xff, 0x43, 0x9f, 0xdd, 0xff, 0x38, 0x9a, 0xdc, 0xff, 0x46, 0xa1, 0xde, 0xff, 0xdb, 0xec, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xdf, 0xf4, 0xff, 0x6a, 0xb2, 0xe4, 0xff, 0xe3, 0xf0, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb1, 0xd8, 0xf1, 0xff, 0x25, 0x90, 0xd8, 0xff, 0x3d, 0x9c, 0xdc, 0xff, 0x2b, 0x93, 0xd9, 0xff, 0x6b, 0xb3, 0xe4, 0xff, 0xfa, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc8, 0xe3, 0xf4, 0xff, 0xdd, 0xee, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0xc1, 0xe9, 0xff, 0x0a, 0x83, 0xd4, 0xff, 0x33, 0x98, 0xda, 0xff, 0xd3, 0xe9, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xe1, 0xf4, 0xff, 0xdf, 0xef, 0xf9, 0xff, 0xfb, 0xfb, 0xfe, 0xff, 0x66, 0x6e, 0xe8, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x46, 0xe2, 0xff, 0x21, 0x72, 0xd9, 0xff, 0x2a, 0x94, 0xd9, 0xff, 0x18, 0x8a, 0xd6, 0xff, 0xbc, 0xde, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0x74, 0xb9, 0xe6, 0xff, 0x33, 0x5b, 0xdd, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x57, 0xde, 0xff, 0x3e, 0x94, 0xce, 0xff, 0x3b, 0x8d, 0xc4, 0xff, 0x38, 0x87, 0xbc, 0xd6, 0x38, 0x87, 0xba, 0xa0, + 0x39, 0x87, 0xba, 0x51, 0x38, 0x87, 0xbc, 0xd1, 0x3b, 0x8d, 0xc4, 0xff, 0x3c, 0x6b, 0xd7, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x44, 0xe1, 0xff, 0x45, 0x95, 0xdd, 0xff, 0x2c, 0x94, 0xd9, 0xff, 0x63, 0xb0, 0xe2, 0xff, 0xf9, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa6, 0xd1, 0xef, 0xff, 0x28, 0x91, 0xd8, 0xff, 0xd4, 0xe9, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xed, 0xf8, 0xff, 0x3a, 0x9b, 0xdb, 0xff, 0x34, 0x98, 0xdb, 0xff, 0x2c, 0x94, 0xd9, 0xff, 0x6b, 0xb3, 0xe4, 0xff, 0xf9, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa6, 0xd2, 0xee, 0xff, 0xad, 0xd5, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xde, 0xf3, 0xff, 0x0c, 0x83, 0xd2, 0xff, 0x4b, 0xa4, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0xf2, 0xfa, 0xff, 0x81, 0xc0, 0xe7, 0xff, 0xd0, 0xe7, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcb, 0xe2, 0xf5, 0xff, 0x33, 0x54, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x44, 0xe1, 0xff, 0x3a, 0x7e, 0xdd, 0xff, 0x1e, 0x8d, 0xd7, 0xff, 0xba, 0xdc, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xfe, 0xff, 0xff, 0x6b, 0xa2, 0xe5, 0xff, 0x39, 0x3d, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3f, 0xe2, 0xff, 0x3f, 0x79, 0xda, 0xff, 0x3e, 0x93, 0xce, 0xff, 0x3b, 0x8d, 0xc4, 0xff, 0x38, 0x87, 0xbc, 0xd6, 0x38, 0x87, 0xba, 0xa0, + 0x39, 0x87, 0xba, 0x51, 0x38, 0x87, 0xbc, 0xd1, 0x3b, 0x8d, 0xc3, 0xff, 0x3e, 0x8c, 0xcf, 0xff, 0x3b, 0x43, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3f, 0x63, 0xe1, 0xff, 0x2a, 0x92, 0xd7, 0xff, 0x89, 0xc3, 0xe9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xc5, 0xe9, 0xff, 0x02, 0x7f, 0xd0, 0xff, 0xbf, 0xdf, 0xf4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xfb, 0xfe, 0xff, 0x62, 0xb0, 0xe2, 0xff, 0x28, 0x91, 0xd7, 0xff, 0x29, 0x92, 0xd7, 0xff, 0x6d, 0xb4, 0xe4, 0xff, 0xf9, 0xfb, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9c, 0xcc, 0xed, 0xff, 0x6b, 0xb4, 0xe4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xec, 0xf6, 0xfc, 0xff, 0x23, 0x90, 0xd6, 0xff, 0x70, 0xb6, 0xe4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xe1, 0xf4, 0xff, 0x56, 0xaa, 0xe1, 0xff, 0xd6, 0xeb, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xe7, 0xf6, 0xff, 0x23, 0x8b, 0xd7, 0xff, 0x39, 0x56, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x44, 0xe0, 0xff, 0x23, 0x72, 0xd9, 0xff, 0xc9, 0xe4, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xfd, 0xff, 0xff, 0x4a, 0x5c, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x50, 0xe0, 0xff, 0x41, 0x97, 0xd5, 0xff, 0x3e, 0x93, 0xcd, 0xff, 0x3b, 0x8d, 0xc3, 0xff, 0x38, 0x87, 0xbc, 0xd6, 0x38, 0x87, 0xba, 0xa0, + 0x39, 0x87, 0xba, 0x51, 0x38, 0x87, 0xbc, 0xd1, 0x3b, 0x8d, 0xc3, 0xff, 0x3e, 0x93, 0xcd, 0xff, 0x3d, 0x69, 0xdc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x40, 0xe2, 0xff, 0x34, 0x7e, 0xdc, 0xff, 0xbc, 0xdd, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x68, 0xb2, 0xe2, 0xff, 0x00, 0x7c, 0xcf, 0xff, 0x9a, 0xcb, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xc5, 0xeb, 0xff, 0x1f, 0x8c, 0xd6, 0xff, 0x23, 0x8e, 0xd6, 0xff, 0x6f, 0xb5, 0xe4, 0xff, 0xf8, 0xfb, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9e, 0xce, 0xee, 0xff, 0x35, 0x99, 0xd9, 0xff, 0xe5, 0xf2, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xae, 0xe1, 0xff, 0x9f, 0xce, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9a, 0xcb, 0xed, 0xff, 0x37, 0x98, 0xdb, 0xff, 0xe6, 0xf2, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xe6, 0xf6, 0xff, 0x22, 0x8e, 0xd6, 0xff, 0x36, 0x94, 0xda, 0xff, 0x6d, 0x72, 0xe9, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x49, 0x4d, 0xe3, 0xff, 0xc6, 0xc8, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xad, 0xb0, 0xf2, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3e, 0x78, 0xdc, 0xff, 0x41, 0x99, 0xd5, 0xff, 0x3e, 0x93, 0xcd, 0xff, 0x3b, 0x8d, 0xc3, 0xff, 0x38, 0x87, 0xbc, 0xd6, 0x38, 0x87, 0xba, 0xa0, + 0x39, 0x84, 0xba, 0x51, 0x38, 0x87, 0xbb, 0xd1, 0x3b, 0x8d, 0xc3, 0xff, 0x3e, 0x94, 0xcd, 0xff, 0x41, 0x93, 0xd5, 0xff, 0x3a, 0x45, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x4e, 0xe0, 0xff, 0xcc, 0xd7, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xea, 0xf8, 0xff, 0x23, 0x8c, 0xd6, 0xff, 0x00, 0x70, 0xcc, 0xff, 0x53, 0xa7, 0xdf, 0xff, 0xf6, 0xfa, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, 0xdf, 0xf3, 0xff, 0x2a, 0x91, 0xd8, 0xff, 0x19, 0x89, 0xd4, 0xff, 0x70, 0xb6, 0xe4, 0xff, 0xf8, 0xfb, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xd7, 0xf1, 0xff, 0x12, 0x85, 0xd3, 0xff, 0xbd, 0xdd, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0xe8, 0xf6, 0xff, 0xe9, 0xf4, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5a, 0xab, 0xe1, 0xff, 0x2d, 0x93, 0xd8, 0xff, 0xf0, 0xf7, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xe6, 0xf6, 0xff, 0x22, 0x8d, 0xd6, 0xff, 0x36, 0x98, 0xda, 0xff, 0xd2, 0xe2, 0xf7, 0xff, 0x77, 0x77, 0xeb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x5a, 0x5a, 0xe7, 0xff, 0xaf, 0xaf, 0xf3, 0xff, 0x47, 0x4b, 0xe4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x50, 0xe0, 0xff, 0x41, 0x9c, 0xd9, 0xff, 0x41, 0x99, 0xd4, 0xff, 0x3e, 0x94, 0xcd, 0xff, 0x3b, 0x8d, 0xc3, 0xff, 0x38, 0x87, 0xbb, 0xd6, 0x38, 0x84, 0xb9, 0xa0, + 0x39, 0x84, 0xba, 0x51, 0x38, 0x87, 0xbb, 0xd1, 0x3b, 0x8d, 0xc3, 0xff, 0x3e, 0x94, 0xcd, 0xff, 0x3f, 0x99, 0xd4, 0xff, 0x3e, 0x7c, 0xdc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x79, 0x7a, 0xea, 0xff, 0xf3, 0xf3, 0xfd, 0xff, 0xca, 0xe4, 0xf5, 0xff, 0x54, 0xa7, 0xdf, 0xff, 0x4a, 0xa2, 0xde, 0xff, 0x67, 0xb1, 0xe3, 0xff, 0xe8, 0xf2, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xf3, 0xfb, 0xff, 0x4b, 0xa2, 0xde, 0xff, 0x0b, 0x82, 0xd1, 0xff, 0x6f, 0xb6, 0xe4, 0xff, 0xf8, 0xfb, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbb, 0xdd, 0xf2, 0xff, 0x01, 0x7d, 0xd0, 0xff, 0x82, 0xbe, 0xe8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xee, 0xf6, 0xfc, 0xff, 0x2c, 0x93, 0xd8, 0xff, 0x38, 0x99, 0xda, 0xff, 0xf5, 0xfa, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xe6, 0xf6, 0xff, 0x22, 0x8e, 0xd6, 0xff, 0x36, 0x97, 0xda, 0xff, 0xdc, 0xed, 0xf9, 0xff, 0xee, 0xee, 0xfc, 0xff, 0x77, 0x77, 0xea, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe3, 0xff, 0x41, 0x87, 0xdc, 0xff, 0x41, 0x9c, 0xd9, 0xff, 0x41, 0x99, 0xd4, 0xff, 0x3e, 0x94, 0xcd, 0xff, 0x3a, 0x8d, 0xc3, 0xff, 0x38, 0x87, 0xbb, 0xd6, 0x38, 0x84, 0xb9, 0xa0, + 0x39, 0x84, 0xba, 0x51, 0x38, 0x87, 0xbb, 0xd1, 0x3b, 0x8d, 0xc3, 0xff, 0x3e, 0x94, 0xcd, 0xff, 0x41, 0x99, 0xd4, 0xff, 0x41, 0x9c, 0xd9, 0xff, 0x3d, 0x5e, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x3d, 0xe2, 0xff, 0x87, 0x87, 0xed, 0xff, 0xf2, 0xf3, 0xfd, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfe, 0xfe, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfd, 0xfe, 0xff, 0x6f, 0xb6, 0xe5, 0xff, 0x00, 0x7b, 0xcf, 0xff, 0x6c, 0xb3, 0xe3, 0xff, 0xfa, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xdf, 0xf3, 0xff, 0x08, 0x81, 0xd1, 0xff, 0x4d, 0xa4, 0xdd, 0xff, 0xf4, 0xfa, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc8, 0xe3, 0xf4, 0xff, 0x06, 0x7f, 0xd0, 0xff, 0x49, 0xa2, 0xdd, 0xff, 0xf7, 0xfb, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xe6, 0xf6, 0xff, 0x22, 0x8e, 0xd6, 0xff, 0x36, 0x97, 0xda, 0xff, 0xdc, 0xed, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe8, 0xeb, 0xfb, 0xff, 0x4d, 0x64, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3f, 0x6a, 0xdf, 0xff, 0x42, 0x9d, 0xdb, 0xff, 0x41, 0x9c, 0xd9, 0xff, 0x41, 0x99, 0xd4, 0xff, 0x3e, 0x94, 0xcd, 0xff, 0x3b, 0x8d, 0xc3, 0xff, 0x38, 0x87, 0xbb, 0xd6, 0x38, 0x84, 0xb9, 0xa0, + 0x39, 0x87, 0xba, 0x51, 0x38, 0x86, 0xbb, 0xd1, 0x3a, 0x8c, 0xc2, 0xff, 0x3d, 0x92, 0xcc, 0xff, 0x40, 0x98, 0xd4, 0xff, 0x41, 0x9d, 0xd8, 0xff, 0x41, 0x92, 0xdb, 0xff, 0x3b, 0x4b, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3c, 0xe2, 0xff, 0x86, 0x86, 0xed, 0xff, 0xf4, 0xf4, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xce, 0xed, 0xff, 0x00, 0x7c, 0xce, 0xff, 0x66, 0xb1, 0xe1, 0xff, 0xfa, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2, 0xe0, 0xf4, 0xff, 0x1f, 0x8b, 0xd4, 0xff, 0x23, 0x8e, 0xd5, 0xff, 0xbc, 0xdc, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf8, 0xfc, 0xff, 0x7f, 0xbd, 0xe6, 0xff, 0x02, 0x7d, 0xce, 0xff, 0x55, 0xa8, 0xdf, 0xff, 0xf5, 0xfa, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xe6, 0xf6, 0xff, 0x22, 0x8e, 0xd4, 0xff, 0x36, 0x97, 0xd9, 0xff, 0xdc, 0xed, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0xf9, 0xfc, 0xff, 0x45, 0x97, 0xdb, 0xff, 0x25, 0x59, 0xda, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x52, 0xe0, 0xff, 0x42, 0x99, 0xdb, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x40, 0x9d, 0xd8, 0xff, 0x3f, 0x98, 0xd4, 0xff, 0x3e, 0x92, 0xcc, 0xff, 0x3b, 0x8c, 0xc2, 0xff, 0x38, 0x85, 0xbb, 0xd6, 0x38, 0x86, 0xb9, 0xa0, + 0x39, 0x87, 0xba, 0x51, 0x38, 0x86, 0xb9, 0xd1, 0x3a, 0x8c, 0xc2, 0xff, 0x3e, 0x92, 0xcc, 0xff, 0x3f, 0x98, 0xd4, 0xff, 0x40, 0x9d, 0xd8, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x46, 0x8b, 0xde, 0xff, 0x3a, 0x3f, 0xe1, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3c, 0xe2, 0xff, 0x46, 0x5d, 0xe2, 0xff, 0x6f, 0xab, 0xe4, 0xff, 0x5a, 0xab, 0xdf, 0xff, 0x94, 0xc8, 0xeb, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd1, 0xe8, 0xf6, 0xff, 0x12, 0x85, 0xd1, 0xff, 0x59, 0xaa, 0xe0, 0xff, 0xfa, 0xfd, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xde, 0xf3, 0xff, 0x2e, 0x94, 0xd7, 0xff, 0x2f, 0x95, 0xd8, 0xff, 0x3d, 0x9c, 0xda, 0xff, 0x55, 0xa9, 0xe0, 0xff, 0x4c, 0xa4, 0xde, 0xff, 0x3c, 0x9a, 0xda, 0xff, 0x24, 0x8f, 0xd5, 0xff, 0x57, 0xaa, 0xdf, 0xff, 0xf1, 0xf9, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xe6, 0xf6, 0xff, 0x22, 0x8e, 0xd4, 0xff, 0x35, 0x97, 0xd9, 0xff, 0xdc, 0xed, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xfa, 0xfd, 0xff, 0x60, 0xad, 0xe0, 0xff, 0x30, 0x7e, 0xd9, 0xff, 0x3c, 0x43, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3c, 0x47, 0xe1, 0xff, 0x41, 0x91, 0xdc, 0xff, 0x42, 0x9e, 0xdb, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x40, 0x9d, 0xd9, 0xff, 0x3f, 0x98, 0xd4, 0xff, 0x3e, 0x92, 0xcb, 0xff, 0x3a, 0x8c, 0xc3, 0xff, 0x38, 0x85, 0xbb, 0xd6, 0x38, 0x86, 0xb9, 0xa0, + 0x39, 0x87, 0xba, 0x51, 0x38, 0x86, 0xb9, 0xd1, 0x3a, 0x8c, 0xc2, 0xff, 0x3e, 0x92, 0xcc, 0xff, 0x3f, 0x98, 0xd3, 0xff, 0x40, 0x9d, 0xd8, 0xff, 0x43, 0x9e, 0xda, 0xff, 0x44, 0x9f, 0xdb, 0xff, 0x28, 0x73, 0xd8, 0xff, 0x39, 0x3b, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x47, 0xe0, 0xff, 0x16, 0x67, 0xd4, 0xff, 0x33, 0x96, 0xd8, 0xff, 0xe8, 0xf3, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xf8, 0xfd, 0xff, 0x35, 0x97, 0xd8, 0xff, 0x4e, 0xa5, 0xdd, 0xff, 0xf9, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, 0xdf, 0xf3, 0xff, 0x2d, 0x93, 0xd7, 0xff, 0x3d, 0x9c, 0xd9, 0xff, 0x36, 0x97, 0xd9, 0xff, 0x20, 0x8c, 0xd4, 0xff, 0x24, 0x8e, 0xd5, 0xff, 0x41, 0x9d, 0xdb, 0xff, 0x2a, 0x90, 0xd7, 0xff, 0x57, 0xa9, 0xdf, 0xff, 0xf3, 0xfa, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd1, 0xe8, 0xf6, 0xff, 0x21, 0x8d, 0xd4, 0xff, 0x38, 0x98, 0xd9, 0xff, 0xdf, 0xee, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xfb, 0xfd, 0xff, 0x4f, 0x7e, 0xe1, 0xff, 0x37, 0x46, 0xdf, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x40, 0xe1, 0xff, 0x41, 0x89, 0xdc, 0xff, 0x42, 0x9d, 0xdb, 0xff, 0x42, 0x9d, 0xdb, 0xff, 0x42, 0x9c, 0xda, 0xff, 0x40, 0x9c, 0xd8, 0xff, 0x3f, 0x98, 0xd3, 0xff, 0x3e, 0x93, 0xcc, 0xff, 0x3a, 0x8c, 0xc2, 0xff, 0x38, 0x85, 0xba, 0xd6, 0x38, 0x86, 0xb9, 0xa0, + 0x39, 0x87, 0xba, 0x51, 0x38, 0x86, 0xb9, 0xd1, 0x3a, 0x8c, 0xc2, 0xff, 0x3e, 0x93, 0xcc, 0xff, 0x3f, 0x98, 0xd3, 0xff, 0x40, 0x9b, 0xd8, 0xff, 0x46, 0x9e, 0xdb, 0xff, 0x39, 0x97, 0xd9, 0xff, 0x1c, 0x8a, 0xd4, 0xff, 0x8e, 0xa7, 0xeb, 0xff, 0x41, 0x41, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3f, 0xe2, 0xff, 0x34, 0x59, 0xde, 0xff, 0xae, 0xc8, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x67, 0xb0, 0xe2, 0xff, 0x48, 0xa1, 0xdc, 0xff, 0xf5, 0xfa, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xe0, 0xf4, 0xff, 0x2a, 0x91, 0xd5, 0xff, 0x39, 0x98, 0xd9, 0xff, 0x48, 0x9f, 0xdd, 0xff, 0x45, 0x9e, 0xdb, 0xff, 0x46, 0x9e, 0xdc, 0xff, 0x4a, 0xa1, 0xdd, 0xff, 0x25, 0x8d, 0xd6, 0xff, 0x53, 0xa6, 0xde, 0xff, 0xf2, 0xf8, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0xe6, 0xf6, 0xff, 0x21, 0x8b, 0xd4, 0xff, 0x35, 0x95, 0xd9, 0xff, 0xdb, 0xec, 0xf8, 0xff, 0xd6, 0xd6, 0xf9, 0xff, 0x75, 0x76, 0xea, 0xff, 0x3b, 0x3e, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x43, 0xe1, 0xff, 0x40, 0x88, 0xdc, 0xff, 0x42, 0x9d, 0xdb, 0xff, 0x42, 0x9d, 0xdb, 0xff, 0x42, 0x9d, 0xdb, 0xff, 0x42, 0x9c, 0xda, 0xff, 0x40, 0x9b, 0xd8, 0xff, 0x3f, 0x98, 0xd3, 0xff, 0x3e, 0x93, 0xcc, 0xff, 0x3a, 0x8c, 0xc2, 0xff, 0x38, 0x85, 0xba, 0xd6, 0x38, 0x86, 0xb9, 0xa0, + 0x39, 0x84, 0xba, 0x51, 0x38, 0x86, 0xb9, 0xd1, 0x3a, 0x8c, 0xc1, 0xff, 0x3e, 0x93, 0xcb, 0xff, 0x3f, 0x98, 0xd3, 0xff, 0x40, 0x9b, 0xd7, 0xff, 0x44, 0x9d, 0xd9, 0xff, 0x3e, 0x9a, 0xd9, 0xff, 0x37, 0x97, 0xd8, 0xff, 0x6a, 0xb2, 0xe2, 0xff, 0x6f, 0x98, 0xe6, 0xff, 0x41, 0x46, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x3e, 0x44, 0xe2, 0xff, 0x5c, 0x76, 0xe4, 0xff, 0x79, 0xa9, 0xe6, 0xff, 0x55, 0xa6, 0xde, 0xff, 0x3f, 0x9c, 0xda, 0xff, 0x77, 0xb8, 0xe4, 0xff, 0x84, 0xbf, 0xe7, 0xff, 0x61, 0xad, 0xe0, 0xff, 0x3b, 0x99, 0xd9, 0xff, 0x40, 0x9c, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x43, 0x9d, 0xda, 0xff, 0x43, 0x9d, 0xda, 0xff, 0x44, 0x9e, 0xdb, 0xff, 0x3b, 0x9a, 0xd9, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x73, 0xb7, 0xe3, 0xff, 0x86, 0xc0, 0xe8, 0xff, 0x66, 0xb0, 0xe1, 0xff, 0x39, 0x98, 0xd8, 0xff, 0x39, 0x84, 0xdb, 0xff, 0x49, 0x62, 0xe1, 0xff, 0x3e, 0x40, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x48, 0xe0, 0xff, 0x40, 0x88, 0xdb, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9c, 0xd9, 0xff, 0x40, 0x9b, 0xd7, 0xff, 0x3f, 0x98, 0xd3, 0xff, 0x3e, 0x93, 0xcb, 0xff, 0x3a, 0x8c, 0xc1, 0xff, 0x38, 0x85, 0xba, 0xd6, 0x38, 0x86, 0xb9, 0xa0, + 0x32, 0x84, 0xbd, 0x51, 0x37, 0x86, 0xbb, 0xd1, 0x3a, 0x8b, 0xc0, 0xff, 0x3d, 0x92, 0xcb, 0xff, 0x40, 0x98, 0xd3, 0xff, 0x40, 0x9b, 0xd7, 0xff, 0x42, 0x9c, 0xd9, 0xff, 0x44, 0x9d, 0xda, 0xff, 0x46, 0x9f, 0xda, 0xff, 0x36, 0x97, 0xd7, 0xff, 0x2a, 0x90, 0xd6, 0xff, 0x2f, 0x80, 0xd8, 0xff, 0x39, 0x4c, 0xe0, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3c, 0x59, 0xde, 0xff, 0x3f, 0x78, 0xdd, 0xff, 0x2f, 0x87, 0xd8, 0xff, 0x2b, 0x8d, 0xd6, 0xff, 0x34, 0x93, 0xd7, 0xff, 0x45, 0x9c, 0xda, 0xff, 0x43, 0x9c, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9c, 0xda, 0xff, 0x45, 0x9d, 0xda, 0xff, 0x41, 0x99, 0xd9, 0xff, 0x2f, 0x8f, 0xd6, 0xff, 0x2d, 0x82, 0xd8, 0xff, 0x36, 0x6d, 0xdc, 0xff, 0x3d, 0x54, 0xe0, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3b, 0x53, 0xe0, 0xff, 0x41, 0x91, 0xdb, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9c, 0xd9, 0xff, 0x40, 0x9b, 0xd7, 0xff, 0x40, 0x98, 0xd3, 0xff, 0x3d, 0x92, 0xcb, 0xff, 0x39, 0x8b, 0xc1, 0xff, 0x38, 0x85, 0xba, 0xd6, 0x38, 0x84, 0xb9, 0xa0, + 0x3a, 0x84, 0xb5, 0x53, 0x39, 0x85, 0xb9, 0xd1, 0x39, 0x8a, 0xc2, 0xff, 0x3d, 0x91, 0xca, 0xff, 0x3f, 0x97, 0xd3, 0xff, 0x40, 0x9c, 0xd8, 0xff, 0x42, 0x9c, 0xd9, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x41, 0x9c, 0xda, 0xff, 0x40, 0x9c, 0xda, 0xff, 0x40, 0x9c, 0xda, 0xff, 0x41, 0x94, 0xdb, 0xff, 0x3e, 0x60, 0xde, 0xff, 0x3a, 0x3f, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x3b, 0x4e, 0xe0, 0xff, 0x3d, 0x5f, 0xdf, 0xff, 0x3e, 0x6c, 0xde, 0xff, 0x3f, 0x76, 0xde, 0xff, 0x40, 0x7d, 0xdd, 0xff, 0x3f, 0x7e, 0xdc, 0xff, 0x40, 0x7c, 0xdd, 0xff, 0x40, 0x76, 0xde, 0xff, 0x3e, 0x6a, 0xde, 0xff, 0x3d, 0x5b, 0xdf, 0xff, 0x3b, 0x4c, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x41, 0xe1, 0xff, 0x3d, 0x68, 0xde, 0xff, 0x42, 0x98, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x42, 0x9c, 0xd9, 0xff, 0x40, 0x9b, 0xd8, 0xff, 0x3f, 0x97, 0xd3, 0xff, 0x3e, 0x92, 0xca, 0xff, 0x3a, 0x8a, 0xc1, 0xff, 0x37, 0x85, 0xb9, 0xd7, 0x37, 0x85, 0xb8, 0xa1, + 0x66, 0x80, 0x93, 0x5a, 0x3e, 0x86, 0xb4, 0xd7, 0x30, 0x8b, 0xc8, 0xff, 0x3f, 0x92, 0xc8, 0xff, 0x3e, 0x98, 0xd1, 0xff, 0x3f, 0x9b, 0xd7, 0xff, 0x41, 0x9c, 0xd9, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x3f, 0x7e, 0xdc, 0xff, 0x3b, 0x4d, 0xe0, 0xff, 0x3a, 0x3e, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3f, 0xe2, 0xff, 0x3c, 0x52, 0xdf, 0xff, 0x40, 0x86, 0xdc, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x41, 0x9d, 0xda, 0xff, 0x42, 0x9d, 0xda, 0xff, 0x41, 0x9c, 0xd9, 0xff, 0x3f, 0x9b, 0xd7, 0xff, 0x3e, 0x97, 0xd1, 0xff, 0x3d, 0x92, 0xc9, 0xff, 0x3a, 0x8a, 0xc0, 0xff, 0x37, 0x88, 0xb9, 0xde, 0x36, 0x86, 0xb8, 0xa9, + 0x48, 0x87, 0xad, 0x35, 0x37, 0x87, 0xb8, 0xc1, 0x37, 0x89, 0xc1, 0xff, 0x3d, 0x90, 0xc8, 0xff, 0x3f, 0x97, 0xd0, 0xff, 0x40, 0x9a, 0xd5, 0xff, 0x40, 0x9b, 0xd8, 0xff, 0x40, 0x9c, 0xd9, 0xff, 0x40, 0x9d, 0xd9, 0xff, 0x40, 0x9d, 0xd9, 0xff, 0x40, 0x9c, 0xd9, 0xff, 0x40, 0x9c, 0xd9, 0xff, 0x40, 0x9c, 0xd9, 0xff, 0x40, 0x9c, 0xd9, 0xff, 0x40, 0x9d, 0xd9, 0xff, 0x40, 0x99, 0xd9, 0xff, 0x3d, 0x70, 0xdd, 0xff, 0x3b, 0x4d, 0xe0, 0xff, 0x3a, 0x3f, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x41, 0xe1, 0xff, 0x3b, 0x51, 0xe0, 0xff, 0x3e, 0x75, 0xdd, 0xff, 0x40, 0x9a, 0xd9, 0xff, 0x40, 0x9c, 0xd9, 0xff, 0x40, 0x9c, 0xd9, 0xff, 0x40, 0x9d, 0xd9, 0xff, 0x40, 0x9d, 0xd9, 0xff, 0x40, 0x9d, 0xd9, 0xff, 0x40, 0x9d, 0xd9, 0xff, 0x40, 0x9c, 0xd9, 0xff, 0x40, 0x9c, 0xd9, 0xff, 0x40, 0x9c, 0xd9, 0xff, 0x40, 0x9b, 0xd8, 0xff, 0x40, 0x99, 0xd5, 0xff, 0x3f, 0x96, 0xd0, 0xff, 0x3c, 0x90, 0xc8, 0xff, 0x39, 0x89, 0xbf, 0xff, 0x37, 0x87, 0xba, 0xc8, 0x37, 0x88, 0xb9, 0x8b, + 0x00, 0x00, 0x00, 0x00, 0x42, 0x6e, 0xa9, 0x7f, 0x3a, 0x83, 0xb9, 0xff, 0x39, 0x92, 0xc7, 0xff, 0x3f, 0x92, 0xcc, 0xff, 0x3f, 0x96, 0xd1, 0xff, 0x3f, 0x98, 0xd4, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x95, 0xd7, 0xff, 0x3e, 0x74, 0xdb, 0xff, 0x3c, 0x55, 0xdf, 0xff, 0x3b, 0x46, 0xe0, 0xff, 0x3a, 0x3c, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3d, 0xe2, 0xff, 0x3b, 0x48, 0xe0, 0xff, 0x3c, 0x58, 0xde, 0xff, 0x3e, 0x79, 0xda, 0xff, 0x40, 0x98, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x40, 0x9a, 0xd6, 0xff, 0x3f, 0x98, 0xd4, 0xff, 0x3f, 0x96, 0xd1, 0xff, 0x3e, 0x92, 0xcc, 0xff, 0x39, 0x92, 0xc7, 0xff, 0x39, 0x85, 0xbb, 0xff, 0x44, 0x6e, 0xa8, 0x84, 0x47, 0x71, 0xa6, 0x2b, + 0x00, 0x00, 0x00, 0x00, 0x33, 0xa3, 0xc2, 0x19, 0x35, 0x88, 0xbc, 0xcd, 0x3f, 0x7d, 0xb7, 0xff, 0x39, 0x91, 0xc8, 0xff, 0x3c, 0x92, 0xcc, 0xff, 0x3d, 0x94, 0xce, 0xff, 0x3f, 0x96, 0xd0, 0xff, 0x41, 0x97, 0xd0, 0xff, 0x40, 0x97, 0xd1, 0xff, 0x40, 0x98, 0xd1, 0xff, 0x40, 0x98, 0xd1, 0xff, 0x40, 0x98, 0xd1, 0xff, 0x40, 0x98, 0xd1, 0xff, 0x40, 0x97, 0xd1, 0xff, 0x40, 0x97, 0xd1, 0xff, 0x40, 0x97, 0xd1, 0xff, 0x40, 0x98, 0xd1, 0xff, 0x40, 0x98, 0xd1, 0xff, 0x3f, 0x97, 0xd1, 0xff, 0x3d, 0x80, 0xd6, 0xff, 0x3c, 0x6b, 0xd9, 0xff, 0x3b, 0x57, 0xdd, 0xff, 0x3b, 0x4e, 0xdf, 0xff, 0x3a, 0x44, 0xe0, 0xff, 0x3a, 0x3f, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x3a, 0x41, 0xe1, 0xff, 0x3b, 0x46, 0xe0, 0xff, 0x3b, 0x4f, 0xde, 0xff, 0x3b, 0x59, 0xdd, 0xff, 0x3c, 0x6f, 0xd9, 0xff, 0x3d, 0x86, 0xd5, 0xff, 0x3e, 0x98, 0xd2, 0xff, 0x3f, 0x97, 0xd1, 0xff, 0x40, 0x97, 0xd1, 0xff, 0x40, 0x97, 0xd1, 0xff, 0x40, 0x98, 0xd1, 0xff, 0x40, 0x98, 0xd1, 0xff, 0x40, 0x98, 0xd1, 0xff, 0x40, 0x97, 0xd1, 0xff, 0x40, 0x97, 0xd1, 0xff, 0x40, 0x97, 0xd1, 0xff, 0x40, 0x97, 0xd1, 0xff, 0x40, 0x98, 0xd1, 0xff, 0x40, 0x96, 0xd0, 0xff, 0x3f, 0x95, 0xd0, 0xff, 0x3d, 0x94, 0xce, 0xff, 0x3d, 0x91, 0xcc, 0xff, 0x3a, 0x91, 0xc8, 0xff, 0x3e, 0x7d, 0xb8, 0xff, 0x35, 0x88, 0xbc, 0xcd, 0x31, 0xa7, 0xc4, 0x1a, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0xb0, 0xd7, 0x2d, 0x3c, 0x7d, 0xb4, 0xd4, 0x39, 0x8a, 0xbd, 0xff, 0x39, 0x8c, 0xc3, 0xff, 0x3a, 0x8f, 0xca, 0xff, 0x3f, 0x90, 0xc7, 0xff, 0x2d, 0x8c, 0xc9, 0xff, 0x2a, 0x8b, 0xcb, 0xff, 0x2d, 0x8c, 0xcb, 0xff, 0x2d, 0x8c, 0xcb, 0xff, 0x2d, 0x8c, 0xcb, 0xff, 0x2d, 0x8c, 0xcb, 0xff, 0x2d, 0x8c, 0xcb, 0xff, 0x2d, 0x8b, 0xcb, 0xff, 0x2c, 0x8b, 0xcb, 0xff, 0x2a, 0x8c, 0xcc, 0xff, 0x39, 0x90, 0xc9, 0xff, 0x40, 0x91, 0xc7, 0xff, 0x3c, 0x90, 0xc8, 0xff, 0x3c, 0x8e, 0xc9, 0xff, 0x3c, 0x84, 0xcc, 0xff, 0x3c, 0x74, 0xd1, 0xff, 0x3b, 0x61, 0xd6, 0xff, 0x3b, 0x57, 0xd9, 0xff, 0x3a, 0x4d, 0xdc, 0xff, 0x3a, 0x46, 0xde, 0xff, 0x3a, 0x42, 0xe0, 0xff, 0x3a, 0x41, 0xe0, 0xff, 0x3a, 0x43, 0xdf, 0xff, 0x3a, 0x48, 0xde, 0xff, 0x3a, 0x4e, 0xdc, 0xff, 0x3b, 0x5a, 0xd9, 0xff, 0x3b, 0x64, 0xd6, 0xff, 0x3c, 0x76, 0xd0, 0xff, 0x3c, 0x86, 0xcb, 0xff, 0x3c, 0x8f, 0xc9, 0xff, 0x3c, 0x90, 0xc8, 0xff, 0x3c, 0x90, 0xc8, 0xff, 0x40, 0x92, 0xc7, 0xff, 0x38, 0x8f, 0xc9, 0xff, 0x2a, 0x8b, 0xcb, 0xff, 0x2c, 0x8c, 0xcb, 0xff, 0x2d, 0x8c, 0xcb, 0xff, 0x2d, 0x8c, 0xcb, 0xff, 0x2d, 0x8c, 0xcb, 0xff, 0x2d, 0x8c, 0xcb, 0xff, 0x2d, 0x8c, 0xcb, 0xff, 0x2c, 0x8b, 0xcb, 0xff, 0x2b, 0x8c, 0xcc, 0xff, 0x30, 0x8c, 0xcb, 0xff, 0x3f, 0x8f, 0xc7, 0xff, 0x3a, 0x90, 0xc9, 0xff, 0x39, 0x8c, 0xc3, 0xff, 0x39, 0x8a, 0xbc, 0xff, 0x3c, 0x7d, 0xb4, 0xd4, 0x28, 0xb0, 0xd7, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x8f, 0xc2, 0x19, 0x3c, 0x7c, 0xb8, 0x73, 0x3c, 0x85, 0xbb, 0xb4, 0x3f, 0x89, 0xba, 0xc3, 0x2b, 0x85, 0xc1, 0xc2, 0x2a, 0x84, 0xc2, 0xac, 0x3b, 0x8a, 0xc1, 0x87, 0x36, 0x89, 0xc0, 0x8a, 0x35, 0x89, 0xc1, 0x8f, 0x36, 0x88, 0xc0, 0x8e, 0x36, 0x88, 0xc0, 0x8e, 0x36, 0x88, 0xc0, 0x8e, 0x35, 0x89, 0xc1, 0x8f, 0x38, 0x8a, 0xc0, 0x89, 0x36, 0x89, 0xc2, 0x8d, 0x21, 0x83, 0xc5, 0xb1, 0x33, 0x87, 0xc0, 0xbf, 0x3d, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3b, 0x8a, 0xbf, 0xbb, 0x3d, 0x8a, 0xbf, 0xbb, 0x34, 0x89, 0xc0, 0xbe, 0x20, 0x82, 0xc3, 0xb2, 0x35, 0x89, 0xc1, 0x8f, 0x38, 0x8a, 0xc2, 0x89, 0x35, 0x89, 0xc1, 0x8f, 0x36, 0x88, 0xc0, 0x8e, 0x36, 0x88, 0xc0, 0x8e, 0x36, 0x88, 0xc0, 0x8e, 0x35, 0x89, 0xc1, 0x8f, 0x37, 0x8a, 0xc1, 0x8b, 0x3b, 0x8b, 0xbe, 0x86, 0x29, 0x84, 0xc3, 0xaa, 0x27, 0x83, 0xc3, 0xc2, 0x3f, 0x8b, 0xba, 0xc3, 0x3d, 0x87, 0xba, 0xb4, 0x3c, 0x7c, 0xb6, 0x73, 0x33, 0x8f, 0xc2, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0xbf, 0x04, 0x2e, 0x8b, 0xb9, 0x0b, 0x00, 0x55, 0xaa, 0x03, 0xc6, 0xaa, 0xaa, 0x09, 0xcb, 0xb7, 0xaa, 0x27, 0xb6, 0xaf, 0xa8, 0x23, 0xbb, 0xb2, 0xaa, 0x1e, 0xb5, 0xad, 0xad, 0x1f, 0xb5, 0xad, 0xad, 0x1f, 0xb5, 0xad, 0xad, 0x1f, 0xbb, 0xb2, 0xaa, 0x1e, 0xb8, 0xb1, 0xaa, 0x24, 0xc5, 0xad, 0x9c, 0x1f, 0x66, 0x99, 0xb3, 0x0a, 0x00, 0x71, 0xc6, 0x09, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x49, 0x92, 0xb6, 0x07, 0x00, 0x71, 0xc6, 0x09, 0x71, 0x8e, 0xaa, 0x09, 0xcc, 0xb2, 0xaa, 0x1e, 0xb8, 0xb1, 0xaa, 0x24, 0xbb, 0xb2, 0xaa, 0x1e, 0xb5, 0xad, 0xad, 0x1f, 0xb5, 0xad, 0xad, 0x1f, 0xb5, 0xad, 0xad, 0x1f, 0xbb, 0xb2, 0xaa, 0x1e, 0xb6, 0xaf, 0xaf, 0x23, 0xbe, 0xaa, 0x9d, 0x27, 0xb3, 0xb3, 0x99, 0x0a, 0x00, 0xaa, 0xaa, 0x03, 0x2e, 0x8b, 0xb9, 0x0b, 0x40, 0x80, 0xbf, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xda, 0xba, 0xa6, 0x59, 0xca, 0xb5, 0xa9, 0xff, 0xc8, 0xb4, 0xa8, 0xf4, 0xc9, 0xb5, 0xa8, 0xea, 0xc9, 0xb5, 0xa8, 0xeb, 0xc9, 0xb5, 0xa8, 0xeb, 0xc9, 0xb5, 0xa8, 0xeb, 0xca, 0xb6, 0xa9, 0xe9, 0xcb, 0xb9, 0xac, 0xf4, 0xc6, 0xad, 0x9c, 0xec, 0xba, 0xa4, 0x92, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd5, 0xba, 0xa7, 0x43, 0xd3, 0xb8, 0xa7, 0xea, 0xc8, 0xb5, 0xa8, 0xf4, 0xc9, 0xb5, 0xa9, 0xe9, 0xc9, 0xb5, 0xa8, 0xeb, 0xc9, 0xb5, 0xa8, 0xeb, 0xc9, 0xb5, 0xa8, 0xeb, 0xca, 0xb6, 0xa9, 0xea, 0xcc, 0xb9, 0xad, 0xf4, 0xc0, 0xad, 0xa0, 0xff, 0xcd, 0xac, 0x96, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0xac, 0xa9, 0x5c, 0xa9, 0xaa, 0xac, 0xff, 0xb1, 0xaf, 0xaf, 0xff, 0xb0, 0xaf, 0xae, 0xff, 0xb0, 0xaf, 0xae, 0xff, 0xb0, 0xaf, 0xae, 0xff, 0xb0, 0xaf, 0xae, 0xff, 0xb2, 0xb1, 0xb0, 0xff, 0xb0, 0xaf, 0xae, 0xff, 0x99, 0x9a, 0x9b, 0xf6, 0x9d, 0x91, 0x89, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, 0xad, 0xa9, 0x41, 0xaa, 0xaa, 0xac, 0xf5, 0xb1, 0xaf, 0xae, 0xff, 0xb0, 0xaf, 0xae, 0xff, 0xb0, 0xaf, 0xae, 0xff, 0xb0, 0xaf, 0xae, 0xff, 0xb0, 0xaf, 0xae, 0xff, 0xb1, 0xb0, 0xaf, 0xff, 0xb3, 0xb0, 0xb0, 0xff, 0x9c, 0x9c, 0x9e, 0xff, 0x98, 0x96, 0x96, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xbf, 0xbf, 0x04, 0xa1, 0x9f, 0x9e, 0x88, 0xa5, 0xa1, 0xa0, 0xee, 0xa4, 0xa2, 0xa1, 0xe7, 0xa5, 0xa2, 0xa1, 0xdf, 0xa5, 0xa2, 0xa1, 0xdf, 0xa7, 0xa2, 0xa2, 0xde, 0xa6, 0xa2, 0xa2, 0xe9, 0xa0, 0x9b, 0x9a, 0xe3, 0x95, 0x93, 0x90, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0xa2, 0xa0, 0x63, 0xa6, 0xa0, 0x9f, 0xe4, 0xa5, 0xa2, 0xa1, 0xea, 0xa5, 0xa2, 0xa1, 0xde, 0xa5, 0xa2, 0xa1, 0xdf, 0xa5, 0xa2, 0xa1, 0xdf, 0xa6, 0xa3, 0xa1, 0xe7, 0xa1, 0x9e, 0x9c, 0xed, 0x96, 0x94, 0x93, 0x86, 0x80, 0x80, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#endif +}; + +const lv_img_dsc_t img_amp_disabled = { + .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA, + .header.always_zero = 0, + .header.reserved = 0, + .header.w = 60, + .header.h = 70, + .data_size = 4200 * LV_IMG_PX_SIZE_ALPHA_BYTE, + .data = img_amp_disabled_map, +}; diff --git a/source/main/ui_generated_800x480land/ui_image_cab_disabled.c b/source/main/ui_generated_800x480land/ui_image_cab_disabled.c new file mode 100644 index 00000000..ed343648 --- /dev/null +++ b/source/main/ui_generated_800x480land/ui_image_cab_disabled.c @@ -0,0 +1,333 @@ +#ifdef __has_include + #if __has_include("lvgl.h") + #ifndef LV_LVGL_H_INCLUDE_SIMPLE + #define LV_LVGL_H_INCLUDE_SIMPLE + #endif + #endif +#endif +#ifdef __has_include + #if __has_include("lvgl.h") + #ifndef LV_LVGL_H_INCLUDE_SIMPLE + #define LV_LVGL_H_INCLUDE_SIMPLE + #endif + #endif +#endif + +#if defined(LV_LVGL_H_INCLUDE_SIMPLE) + #include "lvgl.h" +#else + #include "lvgl/lvgl.h" +#endif + + +#ifndef LV_ATTRIBUTE_MEM_ALIGN +#define LV_ATTRIBUTE_MEM_ALIGN +#endif + +#ifndef LV_ATTRIBUTE_IMG_IMG_CAB_DISABLED +#define LV_ATTRIBUTE_IMG_IMG_CAB_DISABLED +#endif + +const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_IMG_CAB_DISABLED uint8_t img_cab_disabled_map[] = { +#if LV_COLOR_DEPTH == 1 || LV_COLOR_DEPTH == 8 + /*Pixel format: Alpha 8 bit, Red: 3 bit, Green: 3 bit, Blue: 2 bit*/ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x46, 0xf1, 0xb5, 0xf1, 0xed, 0xf1, 0xf5, 0xf1, 0xf0, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xef, 0xf1, 0xf1, 0xf1, 0xf4, 0xf1, 0xeb, 0xf1, 0xb4, 0xf1, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x75, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0xf9, 0xf1, 0xf1, 0xf1, 0xf3, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf4, 0xf1, 0xf3, 0xf1, 0xf1, 0xf1, 0xf9, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x58, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0x9f, 0xf1, 0x3e, 0xf1, 0x33, 0xf1, 0x3a, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x3b, 0xf1, 0x39, 0xf1, 0x33, 0xf1, 0x3e, 0xf1, 0x9f, 0xf1, 0xff, 0xf1, 0xff, 0xf1, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x13, 0xf1, 0xbe, 0xf1, 0xff, 0xf1, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x92, 0xf1, 0xff, 0xf1, 0xbf, 0xf5, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x2f, 0xf1, 0xff, 0xf1, 0xef, 0xf5, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x31, 0xf1, 0xef, 0xf1, 0xff, 0xf1, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0xac, 0x03, 0x90, 0x02, 0xf0, 0x02, 0xf0, 0x02, 0xf0, 0x02, 0x90, 0x02, 0x00, 0x00, 0xf1, 0x38, 0xf5, 0xff, 0xf5, 0xd9, 0xf1, 0x1d, 0x00, 0x00, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0x00, 0x00, 0xf1, 0x1d, 0xf5, 0xd9, 0xf5, 0xff, 0xd0, 0x39, 0x00, 0x00, 0x90, 0x02, 0xf0, 0x02, 0xf0, 0x02, 0xf0, 0x02, 0x90, 0x02, 0xac, 0x03, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x46, 0xd0, 0x93, 0xd0, 0xa3, 0xd0, 0x9c, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x8f, 0xd0, 0xaf, 0xf0, 0xff, 0xf0, 0xf2, 0xd0, 0x9c, 0xd0, 0x8e, 0xd0, 0x9b, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9b, 0xd0, 0x8e, 0xd0, 0x9c, 0xf0, 0xf2, 0xf0, 0xff, 0xd0, 0xaf, 0xd0, 0x8f, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9a, 0xd0, 0x9c, 0xd0, 0xa1, 0xd0, 0x93, 0xd0, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xd0, 0x76, 0xd0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xd1, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xd1, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xd0, 0xff, 0xd0, 0x76, 0x00, 0x00, 0x00, 0x00, + 0xd0, 0x0a, 0xd0, 0x5c, 0xd0, 0xff, 0xf0, 0xff, 0xf0, 0xf9, 0xad, 0xef, 0x6d, 0xfa, 0xad, 0xff, 0xf0, 0xff, 0xd1, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xd1, 0xff, 0xf0, 0xff, 0xad, 0xff, 0x6d, 0xfa, 0xad, 0xef, 0xf0, 0xf9, 0xf0, 0xff, 0xd0, 0xff, 0xd0, 0x5b, 0xd0, 0x09, + 0xd0, 0x79, 0xd0, 0xbc, 0xf0, 0xff, 0xf0, 0xfa, 0x69, 0xf1, 0x25, 0xf4, 0x05, 0xfd, 0x8d, 0xff, 0xf4, 0xff, 0xad, 0xff, 0x05, 0xff, 0x25, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x49, 0xff, 0x69, 0xff, 0x89, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xa9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x49, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x25, 0xff, 0x05, 0xff, 0xad, 0xff, 0xf4, 0xff, 0x8d, 0xff, 0x05, 0xfd, 0x25, 0xf4, 0x69, 0xf1, 0xf0, 0xf9, 0xf0, 0xff, 0xd0, 0xbc, 0xd0, 0x78, + 0xd0, 0xa8, 0xf0, 0xde, 0xf0, 0xff, 0x8d, 0xed, 0x05, 0xf8, 0x29, 0xff, 0x29, 0xff, 0x8d, 0xff, 0xf4, 0xff, 0xad, 0xff, 0x25, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x49, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x25, 0xff, 0xad, 0xff, 0xf4, 0xff, 0x8d, 0xff, 0x29, 0xff, 0x29, 0xff, 0x05, 0xf9, 0x8d, 0xee, 0xf0, 0xff, 0xd0, 0xde, 0xd0, 0xa8, + 0xd0, 0xa3, 0xf0, 0xda, 0xf0, 0xff, 0x49, 0xf5, 0x05, 0xfd, 0x29, 0xff, 0x25, 0xff, 0x8d, 0xff, 0xf0, 0xff, 0xd1, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xd1, 0xff, 0xf0, 0xff, 0x8d, 0xff, 0x25, 0xff, 0x29, 0xff, 0x05, 0xfd, 0x49, 0xf5, 0xf0, 0xff, 0xf0, 0xda, 0xd0, 0xa3, + 0xd0, 0xa0, 0xf0, 0xd6, 0xf0, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0xd1, 0xff, 0xf0, 0xff, 0xd1, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xcd, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xd1, 0xff, 0xf0, 0xff, 0xd1, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x8d, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xd0, 0xff, 0x49, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0x49, 0xff, 0xd0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xf0, 0xff, 0xd1, 0xff, 0x49, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0xa9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x89, 0xff, 0x89, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0x49, 0xff, 0xd1, 0xff, 0xf0, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd6, 0xf0, 0xff, 0x49, 0xff, 0x05, 0xff, 0x25, 0xff, 0xad, 0xff, 0x8d, 0xff, 0x05, 0xff, 0x49, 0xff, 0x49, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x89, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x05, 0xff, 0x8d, 0xff, 0xad, 0xff, 0x25, 0xff, 0x05, 0xff, 0x49, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd6, 0xf0, 0xff, 0x69, 0xff, 0x25, 0xff, 0x29, 0xff, 0xad, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0xad, 0xff, 0xad, 0xff, 0x29, 0xff, 0x25, 0xff, 0x69, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd6, 0xf0, 0xff, 0x69, 0xff, 0x29, 0xff, 0x49, 0xff, 0xad, 0xff, 0xad, 0xff, 0x29, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x29, 0xff, 0xad, 0xff, 0xad, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd6, 0xf0, 0xff, 0x69, 0xff, 0x29, 0xff, 0x49, 0xff, 0xad, 0xff, 0xad, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x29, 0xff, 0xad, 0xff, 0xad, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd6, 0xf0, 0xff, 0x69, 0xff, 0x29, 0xff, 0x49, 0xff, 0xad, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x49, 0xff, 0xad, 0xff, 0xad, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd6, 0xf0, 0xff, 0x69, 0xff, 0x29, 0xff, 0x49, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x6d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x6d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xad, 0xff, 0xad, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd6, 0xf0, 0xff, 0x69, 0xff, 0x29, 0xff, 0x49, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xad, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd6, 0xf0, 0xff, 0x69, 0xff, 0x29, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x6d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x6d, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd6, 0xf0, 0xff, 0x69, 0xff, 0x49, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd6, 0xf0, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x29, 0xff, 0x69, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd6, 0xf0, 0xff, 0x69, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8c, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x49, 0xff, 0x69, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd6, 0xf0, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x69, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd6, 0xf0, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x6d, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x6d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd6, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x6d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x89, 0xff, 0x89, 0xff, 0x89, 0xff, 0x89, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xd7, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x88, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x25, 0xff, 0x25, 0xff, 0x25, 0xff, 0x25, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x64, 0xff, 0x68, 0xff, 0x88, 0xff, 0x8d, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xf0, 0xdb, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x68, 0xff, 0x68, 0xff, 0x91, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x69, 0xff, 0x92, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0x6d, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x6d, 0xff, 0xb6, 0xff, 0xd6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb2, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x88, 0xff, 0x6d, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xf0, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xed, 0xe4, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x89, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xff, 0x25, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x92, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xff, 0x68, 0xff, 0x68, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xed, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xed, 0xed, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xee, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x49, 0xff, 0x25, 0xff, 0x49, 0xff, 0x49, 0xff, 0x92, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb2, 0xff, 0x68, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xe9, 0xf2, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xb2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6e, 0xff, 0x25, 0xff, 0x49, 0xff, 0x49, 0xff, 0x92, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xff, 0x89, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xdb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xff, 0x68, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xe9, 0xf6, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x69, 0xff, 0x44, 0xff, 0x68, 0xff, 0x64, 0xff, 0xdb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb6, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xb6, 0xff, 0x24, 0xff, 0x49, 0xff, 0x49, 0xff, 0x92, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0xff, 0x44, 0xff, 0x68, 0xff, 0x44, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0x88, 0xff, 0x68, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xe9, 0xf9, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x89, 0xff, 0x68, 0xff, 0x89, 0xff, 0x68, 0xff, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xff, 0x92, 0xff, 0x49, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xfb, 0xff, 0xdb, 0xff, 0x25, 0xff, 0x49, 0xff, 0x49, 0xff, 0x92, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0xff, 0x24, 0xff, 0x68, 0xff, 0x44, 0xff, 0x91, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0x68, 0xff, 0x68, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xe9, 0xfb, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x4d, 0xff, 0x6d, 0xff, 0x49, 0xff, 0x49, 0xff, 0x45, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xfb, 0xff, 0x49, 0xff, 0x25, 0xff, 0x49, 0xff, 0x92, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xff, 0x92, 0xff, 0xb1, 0xff, 0xb2, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb6, 0xff, 0x68, 0xff, 0x89, 0xff, 0x69, 0xff, 0x49, 0xff, 0x29, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xe9, 0xfc, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x49, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xdb, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0x8d, 0xff, 0x25, 0xff, 0x49, 0xff, 0x92, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0xff, 0x64, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x29, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xe9, 0xfb, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x49, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xee, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x65, 0xff, 0x25, 0xff, 0x92, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x29, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xe9, 0xf9, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x92, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x65, 0xff, 0x92, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xff, 0x49, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xb6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0x88, 0xff, 0x68, 0xff, 0x69, 0xff, 0x49, 0xff, 0x29, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xe9, 0xf6, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x68, 0xff, 0xb6, 0xff, 0xff, 0xff, 0xff, 0xff, 0x92, 0xff, 0x24, 0xff, 0xb6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xff, 0xee, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xb2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0xff, 0x20, 0xff, 0x68, 0xff, 0x44, 0xff, 0x69, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x69, 0xff, 0x49, 0xff, 0x29, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xe9, 0xf1, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x69, 0xff, 0x44, 0xff, 0x68, 0xff, 0x44, 0xff, 0xdb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb6, 0xff, 0x25, 0xff, 0xdb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xb7, 0xff, 0x44, 0xff, 0x68, 0xff, 0x64, 0xff, 0x68, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xed, 0xeb, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb2, 0xff, 0x68, 0xff, 0x68, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x92, 0xff, 0x49, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0xff, 0xb6, 0xff, 0xb7, 0xff, 0xb6, 0xff, 0xee, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xfb, 0xff, 0xdb, 0xff, 0x44, 0xff, 0x68, 0xff, 0x64, 0xff, 0xb1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xed, 0xe3, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x49, 0xff, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xff, 0x00, 0xff, 0x24, 0xff, 0x25, 0xff, 0x00, 0xff, 0x6d, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xff, 0x68, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xed, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xda, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb2, 0xff, 0x24, 0xff, 0xbb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb6, 0xff, 0x24, 0xff, 0x49, 0xff, 0x49, 0xff, 0x25, 0xff, 0x49, 0xff, 0xff, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xff, 0x68, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd7, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x68, 0xff, 0x8d, 0xff, 0xd6, 0xff, 0xdb, 0xff, 0xdb, 0xff, 0xdb, 0xff, 0xdb, 0xff, 0xda, 0xff, 0xb1, 0xff, 0x68, 0xff, 0x49, 0xff, 0xb7, 0xff, 0xdb, 0xff, 0xd7, 0xff, 0x6d, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x92, 0xff, 0xdb, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xd6, 0xff, 0xdb, 0xff, 0xdb, 0xff, 0xd6, 0xff, 0x89, 0xff, 0x68, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x88, 0xff, 0x8d, 0xff, 0x49, 0xff, 0x25, 0xff, 0x25, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x25, 0xff, 0x49, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x88, 0xff, 0x68, 0xff, 0x68, 0xff, 0x68, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x6d, 0xff, 0x8c, 0xff, 0x69, 0xff, 0x89, 0xff, 0x89, 0xff, 0x68, 0xff, 0x89, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x88, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x89, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x6d, 0xff, 0x69, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x69, 0xff, 0x6d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x69, 0xff, 0x69, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x8c, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x29, 0xff, 0x69, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0x69, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x6d, 0xff, 0x8c, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x89, 0xff, 0x29, 0xff, 0x69, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0x69, 0xff, 0x49, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x6d, 0xff, 0x8c, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0x69, 0xff, 0x29, 0xff, 0x69, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x8c, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0x69, 0xff, 0x29, 0xff, 0x49, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xad, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0x69, 0xff, 0x29, 0xff, 0x49, 0xff, 0xad, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xad, 0xff, 0xad, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0x69, 0xff, 0x29, 0xff, 0x49, 0xff, 0xad, 0xff, 0xad, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x6d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x6d, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x49, 0xff, 0xad, 0xff, 0xad, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0x69, 0xff, 0x29, 0xff, 0x49, 0xff, 0xad, 0xff, 0xad, 0xff, 0x69, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x69, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x69, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x69, 0xff, 0x29, 0xff, 0xad, 0xff, 0xad, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0x69, 0xff, 0x29, 0xff, 0x49, 0xff, 0xad, 0xff, 0xad, 0xff, 0x29, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x29, 0xff, 0xad, 0xff, 0xad, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0x69, 0xff, 0x29, 0xff, 0x49, 0xff, 0xad, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x89, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0xad, 0xff, 0xad, 0xff, 0x49, 0xff, 0x29, 0xff, 0x69, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0x69, 0xff, 0x29, 0xff, 0x29, 0xff, 0xad, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0xad, 0xff, 0xad, 0xff, 0x29, 0xff, 0x29, 0xff, 0x69, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0x49, 0xff, 0x05, 0xff, 0x25, 0xff, 0xad, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0xa9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xa9, 0xff, 0xa9, 0xff, 0x89, 0xff, 0x89, 0xff, 0x89, 0xff, 0x89, 0xff, 0x89, 0xff, 0xa9, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xa9, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0xad, 0xff, 0xad, 0xff, 0x25, 0xff, 0x05, 0xff, 0x49, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xd0, 0xff, 0xad, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0xad, 0xff, 0xd0, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xcc, 0xd6, 0xcc, 0xff, 0xf0, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xad, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x49, 0xff, 0x89, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x49, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0xad, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf0, 0xff, 0xcc, 0xff, 0xcc, 0xd6, 0xd0, 0xa0, + 0xd0, 0xa0, 0xd0, 0xd6, 0xd0, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xad, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xad, 0xff, 0xad, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xad, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0x8d, 0xff, 0xad, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xad, 0xff, 0xd0, 0xff, 0xd0, 0xd6, 0xd0, 0xa0, + 0xcc, 0xa1, 0xd0, 0xd8, 0xd0, 0xff, 0x49, 0xfa, 0x25, 0xfe, 0x29, 0xff, 0x25, 0xff, 0x8d, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xcd, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xcd, 0xff, 0xcd, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xcd, 0xff, 0xcd, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xd1, 0xff, 0xcd, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0x8d, 0xff, 0x25, 0xff, 0x29, 0xff, 0x25, 0xfe, 0x49, 0xfa, 0xd0, 0xff, 0xd0, 0xd8, 0xcc, 0xa1, + 0xcc, 0xa8, 0xd0, 0xde, 0xf0, 0xff, 0x69, 0xed, 0x05, 0xfa, 0x49, 0xff, 0x29, 0xff, 0x8d, 0xff, 0xf4, 0xff, 0xad, 0xff, 0x29, 0xff, 0x29, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x69, 0xff, 0x89, 0xff, 0xa9, 0xff, 0xa9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xc9, 0xff, 0xc9, 0xff, 0xa9, 0xff, 0xa9, 0xff, 0x69, 0xff, 0x69, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x29, 0xff, 0x29, 0xff, 0xad, 0xff, 0xf4, 0xff, 0x8d, 0xff, 0x29, 0xff, 0x49, 0xff, 0x05, 0xfa, 0x69, 0xed, 0xf0, 0xff, 0xd0, 0xde, 0xcc, 0xa8, + 0xcc, 0x9a, 0xcc, 0xd3, 0xf0, 0xff, 0xac, 0xf3, 0x29, 0xf2, 0x25, 0xfc, 0x25, 0xff, 0x8d, 0xff, 0xf4, 0xff, 0xad, 0xff, 0x25, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x29, 0xff, 0x25, 0xff, 0xad, 0xff, 0xf4, 0xff, 0x8d, 0xff, 0x25, 0xff, 0x25, 0xfb, 0x29, 0xf2, 0xac, 0xf3, 0xf0, 0xff, 0xcc, 0xd3, 0xcc, 0x9a, + 0xd0, 0x30, 0xcc, 0x87, 0xd0, 0xff, 0xf0, 0xff, 0xac, 0xf3, 0x69, 0xed, 0x29, 0xfa, 0x8d, 0xff, 0xf0, 0xff, 0xad, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0xad, 0xff, 0xf0, 0xff, 0x8d, 0xff, 0x29, 0xfa, 0x69, 0xec, 0xad, 0xf4, 0xf0, 0xff, 0xd0, 0xff, 0xcc, 0x87, 0xd0, 0x30, + 0x00, 0x00, 0xcc, 0x11, 0xcc, 0xc3, 0xd0, 0xff, 0xf0, 0xff, 0xd0, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xcc, 0xff, 0xd0, 0xff, 0xf0, 0xff, 0xd0, 0xff, 0xcc, 0xc3, 0xcc, 0x11, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xd0, 0x14, 0xcc, 0x8e, 0xd0, 0xde, 0xd0, 0xe9, 0xd0, 0xe1, 0xd0, 0xdf, 0xac, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xd0, 0xdf, 0xac, 0xdf, 0xd0, 0xdf, 0xd0, 0xe1, 0xd0, 0xe9, 0xd0, 0xde, 0xcc, 0x8e, 0xd0, 0x14, 0x00, 0x00, 0x00, 0x00, +#endif +#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP == 0 + /*Pixel format: Alpha 8 bit, Red: 5 bit, Green: 6 bit, Blue: 5 bit*/ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0xec, 0x46, 0x64, 0xec, 0xb5, 0x64, 0xec, 0xed, 0x64, 0xec, 0xf5, 0x64, 0xec, 0xf0, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xef, 0x64, 0xec, 0xf1, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xeb, 0x64, 0xec, 0xb4, 0x64, 0xec, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0xec, 0x75, 0x64, 0xec, 0xff, 0x64, 0xec, 0xff, 0x64, 0xec, 0xf9, 0x64, 0xec, 0xf1, 0x64, 0xec, 0xf3, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf4, 0x64, 0xec, 0xf3, 0x64, 0xec, 0xf1, 0x64, 0xec, 0xf9, 0x64, 0xec, 0xff, 0x64, 0xec, 0xff, 0x64, 0xec, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0xec, 0x58, 0x64, 0xec, 0xff, 0x64, 0xec, 0xff, 0x64, 0xec, 0x9f, 0x65, 0xec, 0x3e, 0x64, 0xec, 0x33, 0x64, 0xec, 0x3a, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x64, 0xec, 0x3b, 0x65, 0xec, 0x39, 0x64, 0xec, 0x33, 0x64, 0xec, 0x3e, 0x64, 0xec, 0x9f, 0x64, 0xec, 0xff, 0x64, 0xec, 0xff, 0x64, 0xec, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0xec, 0x13, 0x64, 0xec, 0xbe, 0x64, 0xe4, 0xff, 0x64, 0xec, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0xec, 0x92, 0x64, 0xec, 0xff, 0x64, 0xec, 0xbf, 0xa5, 0xec, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0xec, 0x2f, 0x64, 0xec, 0xff, 0x64, 0xec, 0xef, 0xa5, 0xfc, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0xfc, 0x31, 0x64, 0xec, 0xef, 0x64, 0xec, 0xff, 0x44, 0xec, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0xa0, 0xaa, 0x03, 0x00, 0x84, 0x02, 0x00, 0xfc, 0x02, 0x00, 0xfc, 0x02, 0x00, 0xfc, 0x02, 0x00, 0x84, 0x02, 0x00, 0x00, 0x00, 0x04, 0xd4, 0x38, 0x84, 0xf4, 0xff, 0xa5, 0xf4, 0xd9, 0xe4, 0xd3, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x84, 0x02, 0x00, 0x00, 0x00, 0xe4, 0xd3, 0x1d, 0xa5, 0xf4, 0xd9, 0x84, 0xf4, 0xff, 0x24, 0xd4, 0x39, 0x00, 0x00, 0x00, 0x00, 0x84, 0x02, 0x00, 0xfc, 0x02, 0x00, 0xfc, 0x02, 0x00, 0xfc, 0x02, 0x00, 0x84, 0x02, 0xa0, 0xaa, 0x03, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0xcb, 0x46, 0xc4, 0xc3, 0x93, 0xc4, 0xcb, 0xa3, 0xe4, 0xcb, 0x9c, 0xe4, 0xcb, 0x9a, 0xc4, 0xc3, 0x9a, 0xc4, 0xcb, 0x9a, 0xe4, 0xd3, 0x9a, 0xc4, 0xcb, 0x8f, 0xe4, 0xd3, 0xaf, 0x24, 0xdc, 0xff, 0x24, 0xdc, 0xf2, 0xc4, 0xc3, 0x9c, 0xc3, 0xcb, 0x8e, 0xe4, 0xd3, 0x9b, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9a, 0xe4, 0xd3, 0x9b, 0xc3, 0xcb, 0x8e, 0xc4, 0xc3, 0x9c, 0x24, 0xdc, 0xf2, 0x24, 0xdc, 0xff, 0xe4, 0xd3, 0xaf, 0xc4, 0xcb, 0x8f, 0xe4, 0xd3, 0x9a, 0xc4, 0xcb, 0x9a, 0xc4, 0xc3, 0x9a, 0xe4, 0xcb, 0x9a, 0xe4, 0xcb, 0x9c, 0xc4, 0xcb, 0xa1, 0xc4, 0xc3, 0x93, 0xa4, 0xcb, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0xc3, 0x76, 0xa4, 0xc3, 0xff, 0x03, 0xdc, 0xff, 0x63, 0xec, 0xff, 0x83, 0xfc, 0xff, 0x23, 0xe4, 0xff, 0xc4, 0xc3, 0xff, 0x04, 0xdc, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xec, 0xff, 0x43, 0xec, 0xff, 0x43, 0xec, 0xff, 0x43, 0xec, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x43, 0xec, 0xff, 0x43, 0xec, 0xff, 0x43, 0xec, 0xff, 0x63, 0xec, 0xff, 0x63, 0xf4, 0xff, 0x63, 0xf4, 0xff, 0x04, 0xdc, 0xff, 0xc4, 0xc3, 0xff, 0x23, 0xe4, 0xff, 0x83, 0xfc, 0xff, 0x63, 0xec, 0xff, 0x03, 0xdc, 0xff, 0xa4, 0xc3, 0xff, 0xc4, 0xc3, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0xd4, 0x0a, 0xe4, 0xc3, 0x5c, 0xc4, 0xc3, 0xff, 0x23, 0xe4, 0xff, 0x43, 0xec, 0xf9, 0x45, 0xa3, 0xef, 0xa7, 0x72, 0xfa, 0x65, 0xab, 0xff, 0x43, 0xec, 0xff, 0xa4, 0xbb, 0xff, 0xc6, 0x7a, 0xff, 0xe6, 0x82, 0xff, 0x06, 0x8b, 0xff, 0xe6, 0x8a, 0xff, 0xe6, 0x8a, 0xff, 0xe6, 0x8a, 0xff, 0xe6, 0x8a, 0xff, 0xe6, 0x8a, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0xe6, 0x8a, 0xff, 0xe6, 0x8a, 0xff, 0xe6, 0x8a, 0xff, 0xe6, 0x8a, 0xff, 0xe6, 0x8a, 0xff, 0x06, 0x8b, 0xff, 0xe6, 0x82, 0xff, 0xc6, 0x7a, 0xff, 0xa4, 0xbb, 0xff, 0x43, 0xec, 0xff, 0x65, 0xab, 0xff, 0xa7, 0x72, 0xfa, 0x45, 0xa3, 0xef, 0x43, 0xec, 0xf9, 0x23, 0xe4, 0xff, 0xa4, 0xc3, 0xff, 0xe4, 0xcb, 0x5b, 0x84, 0xcb, 0x09, + 0xc4, 0xcb, 0x79, 0xc4, 0xcb, 0xbc, 0x23, 0xe4, 0xff, 0x24, 0xe4, 0xfa, 0x67, 0x5a, 0xf1, 0x69, 0x11, 0xf4, 0x0a, 0x01, 0xfd, 0xa6, 0x72, 0xff, 0xa2, 0xfc, 0xff, 0x25, 0x9b, 0xff, 0x49, 0x11, 0xff, 0x69, 0x19, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x41, 0xff, 0xc8, 0x69, 0xff, 0xc8, 0x91, 0xff, 0xc8, 0xa1, 0xff, 0xc8, 0xb9, 0xff, 0xc8, 0xc9, 0xff, 0xc7, 0xd1, 0xff, 0xe7, 0xd1, 0xff, 0xc7, 0xd1, 0xff, 0xc8, 0xc9, 0xff, 0xc8, 0xb9, 0xff, 0xc8, 0xa1, 0xff, 0xc8, 0x89, 0xff, 0xc8, 0x61, 0xff, 0xa9, 0x41, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0xa9, 0x29, 0xff, 0x69, 0x19, 0xff, 0x49, 0x11, 0xff, 0x25, 0x9b, 0xff, 0xa2, 0xfc, 0xff, 0xa6, 0x72, 0xff, 0x0a, 0x01, 0xfd, 0x69, 0x11, 0xf4, 0x67, 0x62, 0xf1, 0x24, 0xe4, 0xf9, 0x23, 0xe4, 0xff, 0xc4, 0xcb, 0xbc, 0xc4, 0xcb, 0x78, + 0xc4, 0xcb, 0xa8, 0xe4, 0xd3, 0xde, 0x63, 0xf4, 0xff, 0xe6, 0x82, 0xed, 0x29, 0x09, 0xf8, 0xa8, 0x29, 0xff, 0x89, 0x21, 0xff, 0xc6, 0x82, 0xff, 0xa2, 0xfc, 0xff, 0x25, 0x9b, 0xff, 0x69, 0x19, 0xff, 0x89, 0x21, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x39, 0xff, 0xc8, 0x69, 0xff, 0xc8, 0x99, 0xff, 0xc8, 0xc1, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xe8, 0xc9, 0xff, 0xc8, 0xc1, 0xff, 0xc8, 0x91, 0xff, 0xc8, 0x61, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x31, 0xff, 0x89, 0x21, 0xff, 0x69, 0x19, 0xff, 0x25, 0x9b, 0xff, 0xa2, 0xfc, 0xff, 0xc6, 0x82, 0xff, 0x89, 0x21, 0xff, 0xa8, 0x29, 0xff, 0x29, 0x09, 0xf9, 0xe6, 0x82, 0xee, 0x63, 0xf4, 0xff, 0x04, 0xd4, 0xde, 0xc4, 0xcb, 0xa8, + 0xe4, 0xcb, 0xa3, 0x23, 0xdc, 0xda, 0x24, 0xe4, 0xff, 0x28, 0x4a, 0xf5, 0x49, 0x09, 0xfd, 0xc8, 0x31, 0xff, 0x69, 0x19, 0xff, 0xe6, 0x82, 0xff, 0x62, 0xfc, 0xff, 0xa4, 0xc3, 0xff, 0xc6, 0x7a, 0xff, 0xc6, 0x7a, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xc6, 0x92, 0xff, 0x67, 0xb2, 0xff, 0x07, 0xd2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x07, 0xd2, 0xff, 0x67, 0xb2, 0xff, 0xc6, 0x8a, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xe6, 0x82, 0xff, 0xc6, 0x7a, 0xff, 0xa6, 0x7a, 0xff, 0xa4, 0xc3, 0xff, 0x62, 0xfc, 0xff, 0xc6, 0x82, 0xff, 0x69, 0x19, 0xff, 0xc8, 0x31, 0xff, 0x49, 0x09, 0xfd, 0x08, 0x4a, 0xf5, 0x44, 0xe4, 0xff, 0x23, 0xdc, 0xda, 0xe4, 0xcb, 0xa3, + 0xe4, 0xcb, 0xa0, 0x03, 0xdc, 0xd6, 0x04, 0xdc, 0xff, 0xc6, 0x7a, 0xff, 0x47, 0x5a, 0xff, 0x67, 0x62, 0xff, 0x87, 0x62, 0xff, 0xa4, 0xbb, 0xff, 0x63, 0xf4, 0xff, 0xa4, 0xbb, 0xff, 0x45, 0xa3, 0xff, 0x65, 0xab, 0xff, 0x65, 0xab, 0xff, 0x65, 0xab, 0xff, 0x65, 0xab, 0xff, 0x45, 0xb3, 0xff, 0x86, 0xca, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xda, 0xff, 0xa6, 0xca, 0xff, 0x45, 0xb3, 0xff, 0x65, 0xab, 0xff, 0x65, 0xab, 0xff, 0x65, 0xab, 0xff, 0x65, 0xab, 0xff, 0x65, 0xab, 0xff, 0x45, 0xa3, 0xff, 0xa4, 0xbb, 0xff, 0x63, 0xf4, 0xff, 0xa4, 0xbb, 0xff, 0x87, 0x62, 0xff, 0x67, 0x62, 0xff, 0x47, 0x5a, 0xff, 0xc6, 0x7a, 0xff, 0x04, 0xdc, 0xff, 0x03, 0xdc, 0xd6, 0xe4, 0xcb, 0xa0, + 0xe4, 0xcb, 0xa0, 0xe4, 0xcb, 0xd6, 0xe4, 0xcb, 0xff, 0x43, 0xec, 0xff, 0x83, 0xfc, 0xff, 0x63, 0xf4, 0xff, 0x23, 0xe4, 0xff, 0x63, 0xf4, 0xff, 0xe4, 0xd3, 0xff, 0x08, 0x42, 0xff, 0xa9, 0x21, 0xff, 0xe9, 0x39, 0xff, 0xe9, 0x39, 0xff, 0xe9, 0x39, 0xff, 0xe8, 0x81, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xc9, 0xff, 0xe8, 0x71, 0xff, 0xe9, 0x39, 0xff, 0xe9, 0x39, 0xff, 0xe9, 0x39, 0xff, 0xe9, 0x39, 0xff, 0xa9, 0x21, 0xff, 0x08, 0x42, 0xff, 0xe3, 0xd3, 0xff, 0x63, 0xf4, 0xff, 0x23, 0xe4, 0xff, 0x63, 0xf4, 0xff, 0x83, 0xfc, 0xff, 0x43, 0xec, 0xff, 0xe4, 0xcb, 0xff, 0xe4, 0xcb, 0xd6, 0xe4, 0xcb, 0xa0, + 0xe4, 0xcb, 0xa0, 0xe4, 0xcb, 0xd6, 0xe4, 0xd3, 0xff, 0xa4, 0xc3, 0xff, 0x84, 0xb3, 0xff, 0xa4, 0xbb, 0xff, 0x03, 0xdc, 0xff, 0xa4, 0xbb, 0xff, 0x08, 0x42, 0xff, 0xa9, 0x29, 0xff, 0x08, 0x42, 0xff, 0x08, 0x42, 0xff, 0x08, 0x5a, 0xff, 0xe8, 0xb9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xd1, 0xff, 0xe8, 0xb1, 0xff, 0xe8, 0x99, 0xff, 0x08, 0x82, 0xff, 0x08, 0x72, 0xff, 0x08, 0x6a, 0xff, 0x08, 0x62, 0xff, 0x08, 0x6a, 0xff, 0x08, 0x72, 0xff, 0x08, 0x82, 0xff, 0xe8, 0x99, 0xff, 0xe8, 0xb9, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xa9, 0xff, 0x08, 0x52, 0xff, 0x08, 0x42, 0xff, 0x08, 0x42, 0xff, 0x08, 0x42, 0xff, 0xa9, 0x29, 0xff, 0x08, 0x42, 0xff, 0xa4, 0xbb, 0xff, 0x03, 0xdc, 0xff, 0xa4, 0xbb, 0xff, 0x84, 0xb3, 0xff, 0xa4, 0xc3, 0xff, 0xe4, 0xd3, 0xff, 0xe4, 0xcb, 0xd6, 0xe4, 0xcb, 0xa0, + 0xe4, 0xcb, 0xa0, 0x03, 0xdc, 0xd6, 0x23, 0xdc, 0xff, 0x27, 0x4a, 0xff, 0x4a, 0x09, 0xff, 0x89, 0x19, 0xff, 0x65, 0xab, 0xff, 0x06, 0x93, 0xff, 0x6a, 0x11, 0xff, 0x28, 0x42, 0xff, 0x48, 0x52, 0xff, 0x08, 0x72, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x08, 0xa2, 0xff, 0x08, 0x72, 0xff, 0x28, 0x52, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x52, 0xff, 0x08, 0x7a, 0xff, 0x08, 0xaa, 0xff, 0xe7, 0xd1, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xc9, 0xff, 0x28, 0x6a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x08, 0x42, 0xff, 0x6a, 0x11, 0xff, 0x05, 0x93, 0xff, 0x65, 0xab, 0xff, 0x89, 0x19, 0xff, 0x4a, 0x09, 0xff, 0x27, 0x4a, 0xff, 0x23, 0xdc, 0xff, 0x03, 0xdc, 0xd6, 0xe4, 0xcb, 0xa0, + 0xe4, 0xcb, 0xa0, 0x03, 0xdc, 0xd6, 0x23, 0xdc, 0xff, 0x48, 0x52, 0xff, 0x69, 0x11, 0xff, 0xa9, 0x21, 0xff, 0x65, 0xab, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x09, 0x42, 0xff, 0x08, 0x8a, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xc9, 0xff, 0x08, 0x92, 0xff, 0x28, 0x52, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x5a, 0xff, 0x08, 0x9a, 0xff, 0xe8, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xd9, 0xff, 0x08, 0x7a, 0xff, 0x28, 0x4a, 0xff, 0x08, 0x42, 0xff, 0xc9, 0x29, 0xff, 0x45, 0x9b, 0xff, 0x65, 0xab, 0xff, 0xa9, 0x21, 0xff, 0x69, 0x11, 0xff, 0x48, 0x52, 0xff, 0x24, 0xdc, 0xff, 0x03, 0xdc, 0xd6, 0xe4, 0xcb, 0xa0, + 0xc4, 0xcb, 0xa0, 0x03, 0xdc, 0xd6, 0x04, 0xdc, 0xff, 0x67, 0x62, 0xff, 0xa9, 0x29, 0xff, 0xe9, 0x39, 0xff, 0x65, 0xab, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0xe8, 0x81, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x08, 0x9a, 0xff, 0x28, 0x52, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x5a, 0xff, 0xe8, 0xa1, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0x7a, 0xff, 0x09, 0x42, 0xff, 0xc9, 0x29, 0xff, 0x45, 0xa3, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x39, 0xff, 0xa9, 0x29, 0xff, 0x67, 0x62, 0xff, 0x04, 0xdc, 0xff, 0x03, 0xdc, 0xd6, 0xc4, 0xcb, 0xa0, + 0xc4, 0xcb, 0xa0, 0x03, 0xdc, 0xd6, 0x04, 0xdc, 0xff, 0x67, 0x5a, 0xff, 0xa9, 0x21, 0xff, 0xe9, 0x31, 0xff, 0x65, 0xab, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x79, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xb1, 0xff, 0x28, 0x6a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x09, 0x3a, 0xff, 0x29, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x7a, 0xff, 0xe8, 0xc1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0x08, 0x72, 0xff, 0xc9, 0x29, 0xff, 0x45, 0xa3, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x31, 0xff, 0xa9, 0x21, 0xff, 0x67, 0x5a, 0xff, 0x03, 0xdc, 0xff, 0x03, 0xdc, 0xd6, 0xc4, 0xcb, 0xa0, + 0xc4, 0xcb, 0xa0, 0x03, 0xdc, 0xd6, 0x03, 0xdc, 0xff, 0x67, 0x5a, 0xff, 0xa9, 0x21, 0xff, 0xe9, 0x31, 0xff, 0x65, 0xab, 0xff, 0xc6, 0xb2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0x72, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x09, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x48, 0x4a, 0xff, 0x67, 0x5a, 0xff, 0x66, 0x62, 0xff, 0x86, 0x6a, 0xff, 0x86, 0x72, 0xff, 0x85, 0x72, 0xff, 0x85, 0x72, 0xff, 0x86, 0x72, 0xff, 0x86, 0x6a, 0xff, 0x66, 0x62, 0xff, 0x67, 0x5a, 0xff, 0x48, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x09, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x5a, 0xff, 0xe8, 0xb1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xd9, 0xff, 0xc9, 0x51, 0xff, 0x45, 0xa3, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x31, 0xff, 0xa9, 0x21, 0xff, 0x67, 0x5a, 0xff, 0x03, 0xdc, 0xff, 0x03, 0xdc, 0xd6, 0xc4, 0xcb, 0xa0, + 0xc4, 0xcb, 0xa0, 0x03, 0xdc, 0xd6, 0x03, 0xdc, 0xff, 0x67, 0x5a, 0xff, 0xa9, 0x21, 0xff, 0xe9, 0x31, 0xff, 0x45, 0xb3, 0xff, 0x07, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xc9, 0xff, 0x28, 0x72, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x2a, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x67, 0x5a, 0xff, 0x86, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0x86, 0x72, 0xff, 0x67, 0x5a, 0xff, 0x29, 0x42, 0xff, 0x2a, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x52, 0xff, 0x08, 0xaa, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xc1, 0xff, 0x25, 0xa3, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x31, 0xff, 0xa9, 0x21, 0xff, 0x67, 0x5a, 0xff, 0x03, 0xdc, 0xff, 0x03, 0xdc, 0xd6, 0xc4, 0xcb, 0xa0, + 0xc4, 0xcb, 0xa0, 0x03, 0xdc, 0xd6, 0x03, 0xdc, 0xff, 0x67, 0x5a, 0xff, 0xa9, 0x21, 0xff, 0xe9, 0x31, 0xff, 0x47, 0xd2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x28, 0x7a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x47, 0x5a, 0xff, 0xa5, 0x72, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x72, 0xff, 0x47, 0x5a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x52, 0xff, 0xe8, 0xa1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x66, 0xca, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x31, 0xff, 0xa9, 0x21, 0xff, 0x67, 0x5a, 0xff, 0x03, 0xdc, 0xff, 0x03, 0xdc, 0xd6, 0xc4, 0xcb, 0xa0, + 0xc4, 0xcb, 0xa0, 0x03, 0xdc, 0xd6, 0x03, 0xdc, 0xff, 0x67, 0x5a, 0xff, 0xa9, 0x29, 0xff, 0xe8, 0x79, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xd1, 0xff, 0x28, 0x7a, 0xff, 0x86, 0x72, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0x86, 0x72, 0xff, 0x48, 0x52, 0xff, 0x2a, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x52, 0xff, 0xe8, 0xb9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x05, 0xbb, 0xff, 0xe9, 0x31, 0xff, 0xa9, 0x29, 0xff, 0x67, 0x5a, 0xff, 0x03, 0xdc, 0xff, 0x03, 0xdc, 0xd6, 0xc4, 0xcb, 0xa0, + 0xc4, 0xcb, 0xa0, 0x03, 0xdc, 0xd6, 0x03, 0xdc, 0xff, 0x67, 0x5a, 0xff, 0xa9, 0x31, 0xff, 0xc7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xb9, 0xff, 0x28, 0x62, 0xff, 0x08, 0xa2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x65, 0x9a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0x67, 0x5a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x5a, 0xff, 0xe8, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xda, 0xff, 0xe9, 0x39, 0xff, 0xa9, 0x29, 0xff, 0x67, 0x5a, 0xff, 0x03, 0xdc, 0xff, 0x03, 0xdc, 0xd6, 0xc4, 0xcb, 0xa0, + 0xc4, 0xcb, 0xa0, 0x03, 0xd4, 0xd6, 0x03, 0xd4, 0xff, 0x67, 0x5a, 0xff, 0xc8, 0x91, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xd1, 0xff, 0x28, 0x6a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x52, 0xff, 0xe8, 0xb1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x66, 0x92, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0x67, 0x62, 0xff, 0x2a, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x08, 0x72, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0x89, 0xff, 0xa9, 0x29, 0xff, 0x67, 0x5a, 0xff, 0x03, 0xdc, 0xff, 0x03, 0xdc, 0xd6, 0xc4, 0xcb, 0xa0, + 0xc4, 0xcb, 0xa0, 0x03, 0xd4, 0xd6, 0x03, 0xd4, 0xff, 0x47, 0x6a, 0xff, 0xc7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0x99, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x52, 0xff, 0xe8, 0xa9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x66, 0x92, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xc4, 0x82, 0xff, 0x67, 0x5a, 0xff, 0x0a, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x08, 0xb2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xc1, 0xff, 0xa9, 0x31, 0xff, 0x67, 0x5a, 0xff, 0x03, 0xd4, 0xff, 0x03, 0xd4, 0xd6, 0xc4, 0xcb, 0xa0, + 0xc4, 0xcb, 0xa0, 0x03, 0xd4, 0xd6, 0x03, 0xd4, 0xff, 0x27, 0xa2, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xc1, 0xff, 0x09, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x2a, 0x3a, 0xff, 0x48, 0x5a, 0xff, 0x26, 0xca, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x66, 0x92, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x82, 0xff, 0xc4, 0x82, 0xff, 0x48, 0x52, 0xff, 0x2a, 0x3a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x5a, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xc8, 0x71, 0xff, 0x67, 0x5a, 0xff, 0x03, 0xd4, 0xff, 0x03, 0xd4, 0xd6, 0xc4, 0xcb, 0xa0, + 0xc4, 0xc3, 0xa0, 0xe3, 0xd3, 0xd6, 0xe4, 0xd3, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe9, 0x81, 0xff, 0x09, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x8a, 0xff, 0x07, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x66, 0x92, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0x86, 0x72, 0xff, 0x86, 0x6a, 0xff, 0x67, 0x62, 0xff, 0x67, 0x62, 0xff, 0x66, 0x6a, 0xff, 0x86, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xc4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0xe8, 0xa1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xb1, 0xff, 0x67, 0x5a, 0xff, 0x03, 0xd4, 0xff, 0xe3, 0xd3, 0xd6, 0xc4, 0xc3, 0xa0, + 0xc4, 0xc3, 0xa0, 0xe3, 0xd3, 0xd6, 0x45, 0xdb, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xda, 0xff, 0xc9, 0x31, 0xff, 0x09, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x87, 0x6a, 0xff, 0xc4, 0x82, 0xff, 0x85, 0x72, 0xff, 0x85, 0x7a, 0xff, 0x07, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x66, 0x9a, 0xff, 0x67, 0x62, 0xff, 0x49, 0x52, 0xff, 0x29, 0x42, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x48, 0x4a, 0xff, 0x67, 0x62, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0x85, 0x7a, 0xff, 0x85, 0x72, 0xff, 0x85, 0x72, 0xff, 0x85, 0x72, 0xff, 0x85, 0x72, 0xff, 0x85, 0x72, 0xff, 0x85, 0x72, 0xff, 0xa6, 0x7a, 0xff, 0xc4, 0x82, 0xff, 0x86, 0x6a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x09, 0x5a, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xd1, 0xff, 0x47, 0x7a, 0xff, 0xe3, 0xd3, 0xff, 0xe3, 0xd3, 0xd6, 0xc4, 0xc3, 0xa0, + 0xc4, 0xc3, 0xa0, 0xe3, 0xd3, 0xd7, 0xa6, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x67, 0xca, 0xff, 0xc9, 0x29, 0xff, 0x09, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x69, 0x52, 0xff, 0x42, 0x72, 0xff, 0x80, 0x61, 0xff, 0x80, 0x59, 0xff, 0xa1, 0x61, 0xff, 0xa1, 0x61, 0xff, 0xc5, 0xb9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0x29, 0x72, 0xff, 0x09, 0x42, 0xff, 0x25, 0x21, 0xff, 0x04, 0x21, 0xff, 0x25, 0x29, 0xff, 0x04, 0x21, 0xff, 0xa7, 0x31, 0xff, 0x4a, 0x4a, 0xff, 0x2a, 0x42, 0xff, 0x09, 0x3a, 0xff, 0x49, 0x52, 0xff, 0x24, 0x62, 0xff, 0xa0, 0x61, 0xff, 0xa0, 0x61, 0xff, 0xa0, 0x61, 0xff, 0xa0, 0x61, 0xff, 0xa0, 0x61, 0xff, 0xa1, 0x61, 0xff, 0x80, 0x59, 0xff, 0xa0, 0x59, 0xff, 0x64, 0x72, 0xff, 0xc5, 0x82, 0xff, 0x48, 0x52, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x09, 0x42, 0xff, 0xc8, 0xb1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xa2, 0xff, 0xe4, 0xd3, 0xff, 0xe3, 0xd3, 0xd6, 0xc4, 0xc3, 0xa0, + 0xc4, 0xc3, 0xa0, 0xa4, 0xdb, 0xdb, 0x47, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe6, 0xb2, 0xff, 0xc9, 0x29, 0xff, 0x09, 0x42, 0xff, 0x49, 0x4a, 0xff, 0x29, 0x42, 0xff, 0xc3, 0x51, 0xff, 0xe1, 0x69, 0xff, 0xab, 0x93, 0xff, 0xaf, 0xac, 0xff, 0xd0, 0xb4, 0xff, 0xd0, 0xb4, 0xff, 0xb0, 0xb4, 0xff, 0x89, 0xd2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0xc7, 0x69, 0xff, 0xcf, 0x7b, 0xff, 0xf3, 0x9c, 0xff, 0xb2, 0x94, 0xff, 0x92, 0x94, 0xff, 0x8a, 0x52, 0xff, 0xc7, 0x39, 0xff, 0x49, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0xe9, 0x39, 0xff, 0xab, 0x52, 0xff, 0xb0, 0xac, 0xff, 0xf0, 0xb4, 0xff, 0xaf, 0xac, 0xff, 0xaf, 0xac, 0xff, 0xd0, 0xac, 0xff, 0xd0, 0xb4, 0xff, 0x8f, 0xac, 0xff, 0x48, 0x8b, 0xff, 0x80, 0x59, 0xff, 0x42, 0x72, 0xff, 0x87, 0x6a, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x09, 0x42, 0xff, 0xc9, 0x71, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xba, 0xff, 0xa4, 0xdb, 0xff, 0xe3, 0xd3, 0xd6, 0xc4, 0xc3, 0xa0, + 0xc4, 0xc3, 0xa0, 0x25, 0xdb, 0xe4, 0x27, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x09, 0x42, 0xff, 0x29, 0x4a, 0xff, 0xc6, 0x41, 0xff, 0x64, 0x72, 0xff, 0x36, 0xd6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8e, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xd1, 0xff, 0xf8, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x96, 0xb5, 0xff, 0x25, 0x29, 0xff, 0xe8, 0x41, 0xff, 0x49, 0x4a, 0xff, 0x86, 0x31, 0xff, 0x52, 0x8c, 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, 0x11, 0xb5, 0xff, 0xc1, 0x69, 0xff, 0x44, 0x72, 0xff, 0x48, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0xc9, 0x41, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xca, 0xff, 0x45, 0xdb, 0xff, 0xe3, 0xd3, 0xd6, 0xc4, 0xc3, 0xa0, + 0xa4, 0xc3, 0xa0, 0xc6, 0xda, 0xed, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xd2, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x29, 0x42, 0xff, 0x09, 0x42, 0xff, 0xc5, 0x51, 0xff, 0x93, 0xcd, 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, 0x6e, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x8a, 0xea, 0xff, 0x39, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3c, 0xe7, 0xff, 0x28, 0x42, 0xff, 0x86, 0x31, 0xff, 0x49, 0x4a, 0xff, 0x86, 0x31, 0xff, 0x72, 0x94, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9d, 0xf7, 0xff, 0x7d, 0xf7, 0xff, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6e, 0xa4, 0xff, 0xe1, 0x69, 0xff, 0x47, 0x5a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0xc9, 0x31, 0xff, 0x27, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0xc6, 0xda, 0xff, 0xe3, 0xd3, 0xd6, 0xa4, 0xc3, 0xa0, + 0xc4, 0xc3, 0xa0, 0x66, 0xe2, 0xf2, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xa6, 0xca, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x29, 0x42, 0xff, 0xe7, 0x41, 0xff, 0xa7, 0x6a, 0xff, 0x3b, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x32, 0xbd, 0xff, 0x07, 0x83, 0xff, 0x28, 0x8b, 0xff, 0x0c, 0x9c, 0xff, 0x5c, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0x8a, 0xca, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x8a, 0xe2, 0xff, 0xd7, 0xed, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0x6d, 0x6b, 0xff, 0x24, 0x21, 0xff, 0x29, 0x4a, 0xff, 0xa6, 0x31, 0xff, 0x51, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x37, 0xd6, 0xff, 0x65, 0x72, 0xff, 0xc6, 0x7a, 0xff, 0xc6, 0x7a, 0xff, 0xb5, 0xc5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xcd, 0xff, 0x22, 0x72, 0xff, 0x25, 0x62, 0xff, 0x29, 0x4a, 0xff, 0x09, 0x42, 0xff, 0xc9, 0x31, 0xff, 0x67, 0xca, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x86, 0xe2, 0xff, 0xe3, 0xd3, 0xd6, 0xc4, 0xc3, 0xa0, + 0xc4, 0xc3, 0xa0, 0x47, 0xe2, 0xf6, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc6, 0xc2, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x29, 0x42, 0xff, 0xc6, 0x41, 0xff, 0x08, 0x83, 0xff, 0x7c, 0xf7, 0xff, 0xff, 0xff, 0xff, 0x7d, 0xf7, 0xff, 0x45, 0x72, 0xff, 0x20, 0x51, 0xff, 0xa0, 0x61, 0xff, 0x41, 0x51, 0xff, 0xf5, 0xcd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb2, 0x9c, 0xff, 0xc7, 0xa9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x29, 0xda, 0xff, 0x18, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9c, 0xff, 0x04, 0x21, 0xff, 0x08, 0x42, 0xff, 0xa6, 0x39, 0xff, 0x51, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x54, 0xad, 0xff, 0xa0, 0x38, 0xff, 0x80, 0x61, 0xff, 0xc0, 0x48, 0xff, 0x49, 0x8b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x57, 0xd6, 0xff, 0x43, 0x72, 0xff, 0x44, 0x6a, 0xff, 0x48, 0x4a, 0xff, 0x09, 0x3a, 0xff, 0xc9, 0x31, 0xff, 0xa6, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x46, 0xe2, 0xff, 0xe3, 0xd3, 0xd6, 0xc4, 0xc3, 0xa0, + 0xa4, 0xc3, 0xa0, 0x27, 0xe2, 0xf9, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x05, 0xbb, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x09, 0x3a, 0xff, 0xe6, 0x49, 0xff, 0x28, 0x83, 0xff, 0x5c, 0xf7, 0xff, 0xff, 0xff, 0xff, 0x5c, 0xf7, 0xff, 0x65, 0x72, 0xff, 0xe2, 0x61, 0xff, 0x84, 0x72, 0xff, 0xc1, 0x61, 0xff, 0x32, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0x30, 0x84, 0xff, 0x86, 0x39, 0xff, 0xa7, 0xa9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x8a, 0xe2, 0xff, 0x39, 0xfe, 0xff, 0x59, 0xce, 0xff, 0x86, 0x31, 0xff, 0xa7, 0x39, 0xff, 0xa6, 0x39, 0xff, 0x71, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x35, 0xa5, 0xff, 0xa1, 0x28, 0xff, 0xa0, 0x61, 0xff, 0xe0, 0x48, 0xff, 0x8a, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x37, 0xd6, 0xff, 0x43, 0x72, 0xff, 0x44, 0x6a, 0xff, 0x48, 0x52, 0xff, 0x09, 0x3a, 0xff, 0xc9, 0x29, 0xff, 0xc6, 0xba, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0xe3, 0xd3, 0xd6, 0xa4, 0xc3, 0xa0, + 0xa4, 0xc3, 0xa0, 0x07, 0xe2, 0xfb, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x25, 0xbb, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x09, 0x3a, 0xff, 0xe6, 0x49, 0xff, 0x27, 0x8b, 0xff, 0x5c, 0xf7, 0xff, 0xff, 0xff, 0xff, 0x7d, 0xf7, 0xff, 0xa5, 0x7a, 0xff, 0xe2, 0x61, 0xff, 0xc5, 0x7a, 0xff, 0xa4, 0x7a, 0xff, 0x87, 0x62, 0xff, 0xab, 0x52, 0xff, 0xaa, 0x52, 0xff, 0x49, 0x4a, 0xff, 0xe8, 0x41, 0xff, 0x66, 0x39, 0xff, 0xcb, 0xca, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xaa, 0xea, 0xff, 0xb6, 0xed, 0xff, 0x49, 0x4a, 0xff, 0x45, 0x29, 0xff, 0xa6, 0x31, 0xff, 0x71, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7a, 0xce, 0xff, 0xad, 0x83, 0xff, 0x2c, 0xa4, 0xff, 0x2d, 0xa4, 0xff, 0x78, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0xb4, 0xff, 0x02, 0x6a, 0xff, 0x84, 0x72, 0xff, 0x48, 0x52, 0xff, 0x09, 0x3a, 0xff, 0xc9, 0x29, 0xff, 0xe6, 0xba, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0xe3, 0xd3, 0xd6, 0xa4, 0xc3, 0xa0, + 0xa4, 0xc3, 0xa0, 0x07, 0xe2, 0xfc, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x25, 0xbb, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x0a, 0x3a, 0xff, 0xe6, 0x49, 0xff, 0x27, 0x8b, 0xff, 0x5c, 0xf7, 0xff, 0xff, 0xff, 0xff, 0x7d, 0xf7, 0xff, 0xa5, 0x7a, 0xff, 0xe2, 0x61, 0xff, 0xc5, 0x7a, 0xff, 0xc5, 0x82, 0xff, 0x27, 0x52, 0xff, 0x87, 0x29, 0xff, 0xa6, 0x39, 0xff, 0x28, 0x4a, 0xff, 0xe8, 0x41, 0xff, 0xa7, 0x39, 0xff, 0x96, 0xc5, 0xff, 0xcf, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xaa, 0xea, 0xff, 0x0c, 0x93, 0xff, 0x24, 0x21, 0xff, 0x86, 0x31, 0xff, 0x71, 0x8c, 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, 0x73, 0xbd, 0xff, 0x60, 0x59, 0xff, 0x43, 0x72, 0xff, 0xc5, 0x82, 0xff, 0x47, 0x5a, 0xff, 0x09, 0x3a, 0xff, 0xc9, 0x29, 0xff, 0xe6, 0xb2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0xe3, 0xd3, 0xd6, 0xa4, 0xc3, 0xa0, + 0xa4, 0xc3, 0xa0, 0x07, 0xe2, 0xfb, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x25, 0xbb, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x0a, 0x3a, 0xff, 0xe6, 0x49, 0xff, 0x27, 0x8b, 0xff, 0x5c, 0xf7, 0xff, 0xff, 0xff, 0xff, 0x7d, 0xf7, 0xff, 0xa5, 0x7a, 0xff, 0xe2, 0x61, 0xff, 0xc5, 0x7a, 0xff, 0xa5, 0x82, 0xff, 0x27, 0x52, 0xff, 0xa8, 0x31, 0xff, 0xc7, 0x39, 0xff, 0x28, 0x4a, 0xff, 0xc7, 0x39, 0xff, 0xaa, 0x5a, 0xff, 0x5d, 0xef, 0xff, 0x9e, 0xff, 0xff, 0x6e, 0xe3, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x49, 0xda, 0xff, 0x66, 0x61, 0xff, 0x45, 0x29, 0xff, 0x71, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb9, 0xde, 0xff, 0x08, 0x83, 0xff, 0x22, 0x6a, 0xff, 0xa5, 0x7a, 0xff, 0x48, 0x5a, 0xff, 0x09, 0x3a, 0xff, 0xc9, 0x29, 0xff, 0xe6, 0xba, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0xe3, 0xd3, 0xd6, 0xa4, 0xc3, 0xa0, + 0xa4, 0xc3, 0xa0, 0x27, 0xe2, 0xf9, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x06, 0xbb, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x09, 0x3a, 0xff, 0xe6, 0x49, 0xff, 0x27, 0x8b, 0xff, 0x5c, 0xf7, 0xff, 0xff, 0xff, 0xff, 0x7d, 0xf7, 0xff, 0xa5, 0x7a, 0xff, 0xe2, 0x61, 0xff, 0xc6, 0x7a, 0xff, 0xa5, 0x82, 0xff, 0x06, 0x52, 0xff, 0xe8, 0x39, 0xff, 0xc7, 0x39, 0xff, 0xe7, 0x41, 0xff, 0x86, 0x31, 0xff, 0xef, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x35, 0xbd, 0xff, 0x86, 0xa9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xd1, 0xff, 0x25, 0x59, 0xff, 0x71, 0x8c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xbd, 0xff, 0x27, 0x52, 0xff, 0xe6, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xb0, 0xac, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x98, 0xde, 0xff, 0x64, 0x72, 0xff, 0x43, 0x72, 0xff, 0x68, 0x5a, 0xff, 0x09, 0x3a, 0xff, 0xc9, 0x31, 0xff, 0xa6, 0xba, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xe2, 0xff, 0xe3, 0xd3, 0xd6, 0xa4, 0xc3, 0xa0, + 0xa4, 0xc3, 0xa0, 0x46, 0xe2, 0xf6, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc6, 0xc2, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x09, 0x3a, 0xff, 0xe6, 0x49, 0xff, 0x28, 0x8b, 0xff, 0x5c, 0xf7, 0xff, 0xff, 0xff, 0xff, 0x5c, 0xf7, 0xff, 0x85, 0x72, 0xff, 0x02, 0x6a, 0xff, 0xa5, 0x7a, 0xff, 0x02, 0x6a, 0xff, 0xd0, 0xac, 0xff, 0x3e, 0xe7, 0xff, 0xfc, 0xe6, 0xff, 0xaf, 0x7b, 0xff, 0xe4, 0x20, 0xff, 0xf3, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3d, 0xef, 0xff, 0xf8, 0xcd, 0xff, 0x4d, 0xdb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xd1, 0xff, 0xae, 0xa3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x35, 0x9d, 0xff, 0x41, 0x20, 0xff, 0x80, 0x61, 0xff, 0xe0, 0x50, 0xff, 0x05, 0x6a, 0xff, 0x7c, 0xf7, 0xff, 0xff, 0xff, 0xff, 0x3c, 0xef, 0xff, 0xe6, 0x82, 0xff, 0x23, 0x6a, 0xff, 0x48, 0x52, 0xff, 0x09, 0x3a, 0xff, 0xc9, 0x31, 0xff, 0x86, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x46, 0xe2, 0xff, 0xe3, 0xd3, 0xd6, 0xa4, 0xc3, 0xa0, + 0xa4, 0xc3, 0xa0, 0x86, 0xe2, 0xf1, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x86, 0xca, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x29, 0x3a, 0xff, 0xc6, 0x41, 0xff, 0x28, 0x83, 0xff, 0x7d, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5c, 0xf7, 0xff, 0xe4, 0x61, 0xff, 0x20, 0x51, 0xff, 0xc1, 0x61, 0xff, 0xe1, 0x48, 0xff, 0xd4, 0xcd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb3, 0x9c, 0xff, 0x24, 0x29, 0xff, 0x18, 0xc6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9e, 0xff, 0xff, 0xcf, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x28, 0xda, 0xff, 0x59, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x55, 0xad, 0xff, 0xe1, 0x38, 0xff, 0xe1, 0x69, 0xff, 0x40, 0x59, 0xff, 0xe4, 0x69, 0xff, 0x3b, 0xef, 0xff, 0xff, 0xff, 0xff, 0x3c, 0xef, 0xff, 0xe6, 0x82, 0xff, 0x23, 0x6a, 0xff, 0x48, 0x52, 0xff, 0x09, 0x3a, 0xff, 0xc9, 0x31, 0xff, 0x67, 0xca, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x86, 0xda, 0xff, 0xe3, 0xd3, 0xd6, 0xa4, 0xc3, 0xa0, + 0xa4, 0xc3, 0xa0, 0xc5, 0xda, 0xeb, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x47, 0xd2, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x29, 0x42, 0xff, 0xe7, 0x41, 0xff, 0xc7, 0x72, 0xff, 0x5c, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x4d, 0xa4, 0xff, 0xc1, 0x61, 0xff, 0x03, 0x6a, 0xff, 0xc7, 0x7a, 0xff, 0xfa, 0xe6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x7b, 0xff, 0x08, 0x42, 0xff, 0x7d, 0xef, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0x55, 0xad, 0xff, 0xf4, 0xa4, 0xff, 0x55, 0xad, 0xff, 0xb2, 0xa4, 0xff, 0x2d, 0xdb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x8a, 0xea, 0xff, 0x79, 0xfe, 0xff, 0xb5, 0xc5, 0xff, 0x43, 0x51, 0xff, 0xc2, 0x61, 0xff, 0x81, 0x59, 0xff, 0xcb, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xe6, 0xff, 0xa5, 0x7a, 0xff, 0x24, 0x62, 0xff, 0x49, 0x4a, 0xff, 0x09, 0x42, 0xff, 0xc9, 0x31, 0xff, 0x07, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd1, 0xff, 0xe6, 0xda, 0xff, 0xe3, 0xd3, 0xd6, 0xa4, 0xc3, 0xa0, + 0xa4, 0xc3, 0xa0, 0x25, 0xdb, 0xe3, 0x27, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x25, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x29, 0x42, 0xff, 0x08, 0x42, 0xff, 0xe5, 0x51, 0xff, 0xf5, 0xd5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3c, 0xef, 0xff, 0x1b, 0xef, 0xff, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0x28, 0x42, 0xff, 0x0c, 0x63, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xc6, 0xff, 0x61, 0x08, 0xff, 0xa2, 0x10, 0xff, 0x65, 0x29, 0xff, 0x00, 0x00, 0xff, 0xcb, 0x62, 0xff, 0xaf, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x8a, 0xea, 0xff, 0x17, 0xf6, 0xff, 0xd9, 0xe6, 0xff, 0xb9, 0xe6, 0xff, 0xda, 0xe6, 0xff, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb5, 0xcd, 0xff, 0x22, 0x72, 0xff, 0x25, 0x5a, 0xff, 0x29, 0x42, 0xff, 0x09, 0x42, 0xff, 0xc9, 0x49, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xca, 0xff, 0x45, 0xdb, 0xff, 0xe3, 0xd3, 0xd6, 0xa4, 0xc3, 0xa0, + 0xa4, 0xc3, 0xa0, 0x84, 0xd3, 0xda, 0x46, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc6, 0xba, 0xff, 0xc9, 0x29, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0xa5, 0x41, 0xff, 0x07, 0x83, 0xff, 0x3b, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x70, 0x94, 0xff, 0xa3, 0x10, 0xff, 0x96, 0xb5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9c, 0xff, 0xa2, 0x18, 0xff, 0xc7, 0x39, 0xff, 0x28, 0x42, 0xff, 0x24, 0x21, 0xff, 0xc7, 0x39, 0xff, 0x1c, 0xe7, 0xff, 0xaf, 0xeb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x8a, 0xea, 0xff, 0x59, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1b, 0xef, 0xff, 0xe6, 0x82, 0xff, 0x02, 0x6a, 0xff, 0x48, 0x52, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0xc9, 0x79, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xb2, 0xff, 0xa4, 0xd3, 0xff, 0xe3, 0xcb, 0xd6, 0xa4, 0xc3, 0xa0, + 0xa4, 0xc3, 0xa0, 0xc3, 0xd3, 0xd7, 0xa6, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x46, 0xca, 0xff, 0xc9, 0x29, 0xff, 0x09, 0x42, 0xff, 0x49, 0x4a, 0xff, 0x29, 0x42, 0xff, 0xc2, 0x59, 0xff, 0xe6, 0x82, 0xff, 0x11, 0xb5, 0xff, 0xd5, 0xcd, 0xff, 0xb5, 0xcd, 0xff, 0xb4, 0xcd, 0xff, 0xd5, 0xcd, 0xff, 0xb4, 0xc5, 0xff, 0xcb, 0x9b, 0xff, 0x80, 0x59, 0xff, 0xc6, 0x49, 0xff, 0xd4, 0x94, 0xff, 0xf8, 0xbd, 0xff, 0x96, 0xb5, 0xff, 0xcb, 0x5a, 0xff, 0xa7, 0x39, 0xff, 0x69, 0x52, 0xff, 0x69, 0x4a, 0xff, 0x28, 0x42, 0xff, 0xa7, 0x39, 0xff, 0x51, 0x8c, 0xff, 0xd7, 0xc5, 0xff, 0x0c, 0xdb, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x49, 0xe2, 0xff, 0x91, 0xcc, 0xff, 0xd5, 0xcd, 0xff, 0xd5, 0xcd, 0xff, 0xf1, 0xb4, 0xff, 0x85, 0x72, 0xff, 0xc1, 0x69, 0xff, 0x86, 0x6a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x09, 0x42, 0xff, 0xe8, 0xb9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0x9a, 0xff, 0xc3, 0xd3, 0xff, 0xe3, 0xcb, 0xd6, 0xa4, 0xc3, 0xa0, + 0xa4, 0xc3, 0xa0, 0xe3, 0xcb, 0xd6, 0x44, 0xd3, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0xc9, 0x39, 0xff, 0x09, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x47, 0x5a, 0xff, 0x22, 0x72, 0xff, 0xe2, 0x69, 0xff, 0x02, 0x6a, 0xff, 0x02, 0x6a, 0xff, 0x02, 0x6a, 0xff, 0x02, 0x6a, 0xff, 0x02, 0x6a, 0xff, 0xe2, 0x61, 0xff, 0x64, 0x7a, 0xff, 0xc6, 0x82, 0xff, 0x06, 0x52, 0xff, 0x86, 0x29, 0xff, 0x66, 0x29, 0xff, 0xe8, 0x39, 0xff, 0x49, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0xa7, 0x31, 0xff, 0x86, 0x31, 0xff, 0x87, 0x31, 0xff, 0xe8, 0xb1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x04, 0x8a, 0xff, 0x02, 0x6a, 0xff, 0xe2, 0x61, 0xff, 0x02, 0x6a, 0xff, 0xa4, 0x82, 0xff, 0x68, 0x5a, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x09, 0x62, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xc9, 0xff, 0x47, 0x7a, 0xff, 0xc3, 0xcb, 0xff, 0xe3, 0xcb, 0xd6, 0xa4, 0xc3, 0xa0, + 0xa4, 0xc3, 0xa0, 0xe3, 0xcb, 0xd6, 0xc3, 0xcb, 0xff, 0xe7, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0x91, 0xff, 0x09, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0xa5, 0x72, 0xff, 0x84, 0x7a, 0xff, 0x64, 0x72, 0xff, 0x64, 0x72, 0xff, 0x64, 0x72, 0xff, 0x64, 0x72, 0xff, 0x64, 0x72, 0xff, 0x85, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0x84, 0x7a, 0xff, 0x25, 0x62, 0xff, 0x07, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x09, 0x3a, 0xff, 0xe8, 0x39, 0xff, 0x07, 0x4a, 0xff, 0x66, 0x6a, 0xff, 0x06, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x45, 0x92, 0xff, 0x65, 0x72, 0xff, 0xc4, 0x82, 0xff, 0x86, 0x72, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x08, 0xaa, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xa9, 0xff, 0x47, 0x5a, 0xff, 0xc3, 0xcb, 0xff, 0xe3, 0xcb, 0xd6, 0xa4, 0xc3, 0xa0, + 0xa4, 0xbb, 0xa0, 0xe3, 0xcb, 0xd6, 0xc3, 0xcb, 0xff, 0x27, 0x9a, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xd1, 0xff, 0x09, 0x52, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x48, 0x52, 0xff, 0xc5, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0x85, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0x86, 0x72, 0xff, 0x67, 0x62, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x67, 0x62, 0xff, 0x86, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0x85, 0x7a, 0xff, 0x07, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x66, 0x9a, 0xff, 0xc4, 0x82, 0xff, 0x48, 0x52, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x62, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xc9, 0x69, 0xff, 0x47, 0x5a, 0xff, 0xc3, 0xcb, 0xff, 0xe3, 0xcb, 0xd6, 0xa4, 0xbb, 0xa0, + 0xa3, 0xbb, 0xa0, 0xc3, 0xcb, 0xd6, 0xc3, 0xcb, 0xff, 0x47, 0x6a, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xa1, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x0a, 0x3a, 0xff, 0x67, 0x62, 0xff, 0xc4, 0x8a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0x85, 0x7a, 0xff, 0x07, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xda, 0xff, 0x47, 0x8a, 0xff, 0x0a, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0xe8, 0xb9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xc1, 0xff, 0xa9, 0x29, 0xff, 0x47, 0x5a, 0xff, 0xc3, 0xcb, 0xff, 0xc3, 0xcb, 0xd6, 0xa4, 0xbb, 0xa0, + 0xa4, 0xbb, 0xa0, 0xc3, 0xcb, 0xd6, 0xc3, 0xcb, 0xff, 0x47, 0x5a, 0xff, 0xc8, 0x89, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x28, 0x72, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x2a, 0x3a, 0xff, 0x86, 0x72, 0xff, 0xc4, 0x8a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0x85, 0x7a, 0xff, 0x27, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xd1, 0xff, 0x09, 0x6a, 0xff, 0x28, 0x4a, 0xff, 0x08, 0x82, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0x79, 0xff, 0xa9, 0x29, 0xff, 0x47, 0x5a, 0xff, 0xc3, 0xcb, 0xff, 0xc3, 0xcb, 0xd6, 0xa3, 0xbb, 0xa0, + 0xa3, 0xbb, 0xa0, 0xc3, 0xcb, 0xd6, 0xc3, 0xcb, 0xff, 0x47, 0x5a, 0xff, 0xa9, 0x31, 0xff, 0xc7, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xc9, 0xff, 0x28, 0x5a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x86, 0x72, 0xff, 0xc4, 0x8a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0x85, 0x82, 0xff, 0x07, 0xc2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xc9, 0xff, 0x08, 0x8a, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x27, 0xda, 0xff, 0xe9, 0x31, 0xff, 0xa9, 0x29, 0xff, 0x47, 0x5a, 0xff, 0xc3, 0xcb, 0xff, 0xc3, 0xcb, 0xd6, 0xa3, 0xbb, 0xa0, + 0xa3, 0xbb, 0xa0, 0xc3, 0xcb, 0xd6, 0xc3, 0xcb, 0xff, 0x47, 0x5a, 0xff, 0xa9, 0x29, 0xff, 0xe8, 0x69, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xb1, 0xff, 0x28, 0x52, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x86, 0x6a, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x8a, 0xff, 0x26, 0xca, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x25, 0xbb, 0xff, 0xe9, 0x31, 0xff, 0xa9, 0x29, 0xff, 0x47, 0x5a, 0xff, 0xc3, 0xcb, 0xff, 0xc3, 0xcb, 0xd6, 0xa3, 0xbb, 0xa0, + 0x83, 0xbb, 0xa0, 0xc3, 0xcb, 0xd6, 0xc3, 0xcb, 0xff, 0x67, 0x5a, 0xff, 0xa9, 0x29, 0xff, 0xe9, 0x31, 0xff, 0x66, 0xd2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xa1, 0xff, 0x29, 0x52, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x67, 0x62, 0xff, 0xc4, 0x82, 0xff, 0xc4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xc4, 0x82, 0xff, 0xc4, 0x82, 0xff, 0x67, 0x6a, 0xff, 0xe8, 0xa9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x86, 0xc2, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x31, 0xff, 0xa9, 0x29, 0xff, 0x67, 0x5a, 0xff, 0xc3, 0xcb, 0xff, 0xc3, 0xcb, 0xd6, 0x83, 0xbb, 0xa0, + 0x83, 0xbb, 0xa0, 0xc3, 0xcb, 0xd6, 0xc3, 0xcb, 0xff, 0x47, 0x5a, 0xff, 0xa9, 0x29, 0xff, 0xe9, 0x31, 0xff, 0x45, 0xb3, 0xff, 0x07, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0xaa, 0xff, 0x29, 0x52, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x2a, 0x3a, 0xff, 0x28, 0x4a, 0xff, 0x86, 0x72, 0xff, 0xc4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xc4, 0x82, 0xff, 0x86, 0x72, 0xff, 0x28, 0x4a, 0xff, 0x2a, 0x3a, 0xff, 0x29, 0x52, 0xff, 0x08, 0xa2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc8, 0xb1, 0xff, 0x45, 0xa3, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x31, 0xff, 0xa9, 0x29, 0xff, 0x47, 0x5a, 0xff, 0xc3, 0xcb, 0xff, 0xc3, 0xcb, 0xd6, 0x83, 0xbb, 0xa0, + 0x83, 0xbb, 0xa0, 0xc3, 0xcb, 0xd6, 0xc3, 0xcb, 0xff, 0x47, 0x5a, 0xff, 0xa9, 0x29, 0xff, 0xe9, 0x31, 0xff, 0x65, 0xab, 0xff, 0x06, 0xb3, 0xff, 0xe8, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xb9, 0xff, 0x29, 0x5a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x0a, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x67, 0x5a, 0xff, 0x86, 0x72, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0xa4, 0x82, 0xff, 0x86, 0x72, 0xff, 0x67, 0x5a, 0xff, 0x29, 0x42, 0xff, 0x0a, 0x3a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x6a, 0xff, 0xe8, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xd1, 0xff, 0xc9, 0x41, 0xff, 0x45, 0xa3, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x31, 0xff, 0xa9, 0x29, 0xff, 0x47, 0x5a, 0xff, 0xc3, 0xcb, 0xff, 0xc3, 0xcb, 0xd6, 0x83, 0xbb, 0xa0, + 0x83, 0xbb, 0xa0, 0xc3, 0xcb, 0xd6, 0xc3, 0xcb, 0xff, 0x47, 0x5a, 0xff, 0xa9, 0x29, 0xff, 0xe9, 0x31, 0xff, 0x65, 0xab, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x61, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xc9, 0xff, 0x28, 0x7a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x49, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x0a, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x48, 0x52, 0xff, 0x67, 0x62, 0xff, 0x86, 0x6a, 0xff, 0x85, 0x72, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0xa5, 0x7a, 0xff, 0x85, 0x72, 0xff, 0x86, 0x6a, 0xff, 0x67, 0x62, 0xff, 0x48, 0x52, 0xff, 0x29, 0x42, 0xff, 0x0a, 0x3a, 0xff, 0x29, 0x42, 0xff, 0x49, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x08, 0x8a, 0xff, 0xe8, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xd9, 0xff, 0x08, 0x62, 0xff, 0xc9, 0x29, 0xff, 0x45, 0xa3, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x31, 0xff, 0xa9, 0x29, 0xff, 0x47, 0x5a, 0xff, 0xc3, 0xcb, 0xff, 0xc3, 0xcb, 0xd6, 0x83, 0xbb, 0xa0, + 0x83, 0xbb, 0xa0, 0xc3, 0xcb, 0xd6, 0xc3, 0xcb, 0xff, 0x47, 0x5a, 0xff, 0xa9, 0x29, 0xff, 0xe9, 0x31, 0xff, 0x65, 0xab, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x08, 0x72, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xe8, 0xa9, 0xff, 0x29, 0x5a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x5a, 0xff, 0x48, 0x5a, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x6a, 0xff, 0xe8, 0xb1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x28, 0x6a, 0xff, 0x09, 0x42, 0xff, 0xc9, 0x29, 0xff, 0x45, 0xa3, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x31, 0xff, 0xa9, 0x29, 0xff, 0x47, 0x5a, 0xff, 0xc3, 0xcb, 0xff, 0xc3, 0xcb, 0xd6, 0x83, 0xbb, 0xa0, + 0x83, 0xbb, 0xa0, 0xc3, 0xcb, 0xd6, 0xc3, 0xcb, 0xff, 0x47, 0x5a, 0xff, 0xa9, 0x29, 0xff, 0xe9, 0x31, 0xff, 0x65, 0xab, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x09, 0x42, 0xff, 0x08, 0x7a, 0xff, 0xe8, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xd9, 0xff, 0x08, 0xa2, 0xff, 0x28, 0x62, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x42, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x6a, 0xff, 0xe8, 0xb1, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xd1, 0xff, 0x28, 0x6a, 0xff, 0x28, 0x4a, 0xff, 0x09, 0x42, 0xff, 0xc9, 0x29, 0xff, 0x45, 0xa3, 0xff, 0x65, 0xab, 0xff, 0xe9, 0x31, 0xff, 0xa9, 0x29, 0xff, 0x47, 0x5a, 0xff, 0xc3, 0xcb, 0xff, 0xc3, 0xcb, 0xd6, 0x83, 0xbb, 0xa0, + 0x83, 0xbb, 0xa0, 0xc3, 0xcb, 0xd6, 0xc3, 0xcb, 0xff, 0x47, 0x5a, 0xff, 0xa9, 0x21, 0xff, 0xc9, 0x31, 0xff, 0x65, 0xab, 0xff, 0x45, 0xa3, 0xff, 0xc9, 0x29, 0xff, 0x29, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x6a, 0xff, 0xe7, 0xc1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xc7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x08, 0xb2, 0xff, 0x28, 0x82, 0xff, 0x29, 0x5a, 0xff, 0x29, 0x52, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x52, 0xff, 0x28, 0x62, 0xff, 0x08, 0x8a, 0xff, 0xe8, 0xb9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xb9, 0xff, 0x28, 0x5a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x09, 0x42, 0xff, 0xc9, 0x29, 0xff, 0x45, 0xa3, 0xff, 0x65, 0xab, 0xff, 0xc9, 0x31, 0xff, 0xa9, 0x21, 0xff, 0x47, 0x5a, 0xff, 0xc3, 0xcb, 0xff, 0xc3, 0xcb, 0xd6, 0x83, 0xbb, 0xa0, + 0x83, 0xbb, 0xa0, 0xc3, 0xcb, 0xd6, 0xc3, 0xcb, 0xff, 0x08, 0x42, 0xff, 0x4a, 0x01, 0xff, 0x6a, 0x11, 0xff, 0x45, 0xa3, 0xff, 0x25, 0x93, 0xff, 0x8a, 0x19, 0xff, 0x28, 0x42, 0xff, 0x28, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x5a, 0xff, 0x08, 0xaa, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe8, 0xc1, 0xff, 0x08, 0xaa, 0xff, 0x08, 0x9a, 0xff, 0x08, 0x8a, 0xff, 0x28, 0x7a, 0xff, 0x28, 0x7a, 0xff, 0x28, 0x82, 0xff, 0x08, 0x8a, 0xff, 0x08, 0x9a, 0xff, 0x08, 0xb2, 0xff, 0xe8, 0xc9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0x08, 0x9a, 0xff, 0x28, 0x52, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x28, 0x4a, 0xff, 0x28, 0x42, 0xff, 0x8a, 0x19, 0xff, 0x25, 0x93, 0xff, 0x45, 0xa3, 0xff, 0x6a, 0x11, 0xff, 0x4a, 0x01, 0xff, 0x08, 0x42, 0xff, 0xc3, 0xcb, 0xff, 0xc3, 0xcb, 0xd6, 0x83, 0xbb, 0xa0, + 0x83, 0xbb, 0xa0, 0xa3, 0xc3, 0xd6, 0xa3, 0xc3, 0xff, 0x06, 0x93, 0xff, 0xc6, 0x7a, 0xff, 0xe6, 0x7a, 0xff, 0xc4, 0xcb, 0xff, 0x65, 0xa3, 0xff, 0xaa, 0x21, 0xff, 0xe9, 0x31, 0xff, 0x48, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x08, 0x7a, 0xff, 0xe8, 0xc1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xe8, 0xb9, 0xff, 0x28, 0x6a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x29, 0x4a, 0xff, 0x48, 0x4a, 0xff, 0xe9, 0x31, 0xff, 0xaa, 0x21, 0xff, 0x65, 0xa3, 0xff, 0xc4, 0xcb, 0xff, 0xe6, 0x7a, 0xff, 0xc6, 0x7a, 0xff, 0x06, 0x93, 0xff, 0xa3, 0xc3, 0xff, 0xa3, 0xc3, 0xd6, 0x83, 0xbb, 0xa0, + 0x83, 0xbb, 0xa0, 0x63, 0xb3, 0xd6, 0x84, 0xbb, 0xff, 0x62, 0xf4, 0xff, 0xc2, 0xfc, 0xff, 0xa2, 0xfc, 0xff, 0x63, 0xf4, 0xff, 0x43, 0xec, 0xff, 0x65, 0xab, 0xff, 0xca, 0x29, 0xff, 0xaa, 0x19, 0xff, 0xc9, 0x31, 0xff, 0xc9, 0x29, 0xff, 0xe9, 0x31, 0xff, 0xe9, 0x31, 0xff, 0xe9, 0x39, 0xff, 0xe9, 0x81, 0xff, 0xe8, 0xc1, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xd9, 0xff, 0xe8, 0xb9, 0xff, 0xe9, 0x79, 0xff, 0xea, 0x31, 0xff, 0xea, 0x31, 0xff, 0xe9, 0x31, 0xff, 0xe9, 0x31, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x31, 0xff, 0xaa, 0x19, 0xff, 0xc9, 0x29, 0xff, 0x65, 0xab, 0xff, 0x43, 0xec, 0xff, 0x63, 0xf4, 0xff, 0xa2, 0xfc, 0xff, 0xc2, 0xfc, 0xff, 0x62, 0xf4, 0xff, 0x84, 0xbb, 0xff, 0x63, 0xb3, 0xd6, 0x83, 0xbb, 0xa0, + 0x83, 0xbb, 0xa0, 0xa3, 0xbb, 0xd6, 0xa4, 0xbb, 0xff, 0x45, 0xa3, 0xff, 0x25, 0x9b, 0xff, 0x25, 0x9b, 0xff, 0x45, 0x9b, 0xff, 0x03, 0xdc, 0xff, 0x62, 0xf4, 0xff, 0x45, 0x9b, 0xff, 0xe6, 0x7a, 0xff, 0x06, 0x93, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x93, 0xff, 0xa7, 0xb2, 0xff, 0x27, 0xca, 0xff, 0x07, 0xda, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xda, 0xff, 0x47, 0xca, 0xff, 0xa6, 0xaa, 0xff, 0x06, 0x93, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x8b, 0xff, 0x06, 0x93, 0xff, 0xe6, 0x82, 0xff, 0x45, 0x9b, 0xff, 0x62, 0xf4, 0xff, 0x03, 0xdc, 0xff, 0x45, 0x9b, 0xff, 0x25, 0x9b, 0xff, 0x25, 0x9b, 0xff, 0x45, 0xa3, 0xff, 0xa4, 0xc3, 0xff, 0xa3, 0xbb, 0xd6, 0x83, 0xbb, 0xa0, + 0x83, 0xbb, 0xa1, 0xc3, 0xcb, 0xd8, 0xa3, 0xcb, 0xff, 0x08, 0x42, 0xfa, 0x69, 0x11, 0xfe, 0xa9, 0x29, 0xff, 0x89, 0x19, 0xff, 0x06, 0x8b, 0xff, 0x63, 0xf4, 0xff, 0x03, 0xd4, 0xff, 0x84, 0xb3, 0xff, 0x84, 0xb3, 0xff, 0xa4, 0xbb, 0xff, 0x84, 0xbb, 0xff, 0xa4, 0xbb, 0xff, 0x84, 0xbb, 0xff, 0xa4, 0xbb, 0xff, 0xa4, 0xbb, 0xff, 0xa4, 0xbb, 0xff, 0xa4, 0xbb, 0xff, 0x25, 0xc3, 0xff, 0xc6, 0xca, 0xff, 0x66, 0xda, 0xff, 0x47, 0xda, 0xff, 0x07, 0xe2, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0xe7, 0xe1, 0xff, 0x07, 0xe2, 0xff, 0x07, 0xe2, 0xff, 0x47, 0xda, 0xff, 0x66, 0xd2, 0xff, 0xe6, 0xca, 0xff, 0x45, 0xc3, 0xff, 0xa4, 0xbb, 0xff, 0xa4, 0xbb, 0xff, 0xa4, 0xbb, 0xff, 0xa4, 0xbb, 0xff, 0xa4, 0xbb, 0xff, 0x84, 0xbb, 0xff, 0xa4, 0xbb, 0xff, 0x84, 0xbb, 0xff, 0xa4, 0xbb, 0xff, 0x84, 0xb3, 0xff, 0x84, 0xb3, 0xff, 0x03, 0xd4, 0xff, 0x63, 0xf4, 0xff, 0x06, 0x8b, 0xff, 0x89, 0x19, 0xff, 0xa9, 0x29, 0xff, 0x69, 0x11, 0xfe, 0x08, 0x42, 0xfa, 0xc3, 0xcb, 0xff, 0xc3, 0xcb, 0xd8, 0x83, 0xbb, 0xa1, + 0x63, 0xbb, 0xa8, 0xa3, 0xc3, 0xde, 0xe3, 0xd3, 0xff, 0x47, 0x5a, 0xed, 0x6a, 0x11, 0xfa, 0xe8, 0x39, 0xff, 0x89, 0x21, 0xff, 0xc6, 0x7a, 0xff, 0xa2, 0xfc, 0xff, 0x45, 0xa3, 0xff, 0xa9, 0x29, 0xff, 0xc9, 0x31, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x42, 0xff, 0x09, 0x42, 0xff, 0x09, 0x5a, 0xff, 0xe8, 0x71, 0xff, 0xe8, 0x99, 0xff, 0xe8, 0xa9, 0xff, 0xe8, 0xc1, 0xff, 0xe8, 0xc9, 0xff, 0xe7, 0xd1, 0xff, 0xe7, 0xd9, 0xff, 0xe7, 0xd1, 0xff, 0xe8, 0xc9, 0xff, 0xe8, 0xb9, 0xff, 0xe8, 0xa9, 0xff, 0xe8, 0x91, 0xff, 0xe8, 0x71, 0xff, 0x09, 0x52, 0xff, 0x09, 0x42, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0x09, 0x3a, 0xff, 0xc9, 0x31, 0xff, 0xa9, 0x29, 0xff, 0x45, 0xa3, 0xff, 0x82, 0xfc, 0xff, 0xc6, 0x7a, 0xff, 0x89, 0x21, 0xff, 0xe8, 0x39, 0xff, 0x6a, 0x11, 0xfa, 0x47, 0x5a, 0xed, 0xe3, 0xd3, 0xff, 0xa3, 0xc3, 0xde, 0x63, 0xbb, 0xa8, + 0x83, 0xbb, 0x9a, 0x83, 0xbb, 0xd3, 0xe3, 0xd3, 0xff, 0x64, 0xab, 0xf3, 0xa9, 0x29, 0xf2, 0x89, 0x19, 0xfc, 0x6a, 0x11, 0xff, 0xe6, 0x7a, 0xff, 0xc2, 0xfc, 0xff, 0x45, 0x9b, 0xff, 0x6a, 0x11, 0xff, 0x8a, 0x21, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0xc9, 0x29, 0xff, 0x8a, 0x21, 0xff, 0x6a, 0x11, 0xff, 0x45, 0x9b, 0xff, 0xc2, 0xfc, 0xff, 0xe6, 0x7a, 0xff, 0x6a, 0x11, 0xff, 0x89, 0x19, 0xfb, 0xa9, 0x29, 0xf2, 0x64, 0xab, 0xf3, 0xe3, 0xd3, 0xff, 0x83, 0xbb, 0xd3, 0x83, 0xbb, 0x9a, + 0x83, 0xbb, 0x30, 0x83, 0xbb, 0x87, 0xa3, 0xbb, 0xff, 0xe3, 0xdb, 0xff, 0x44, 0xab, 0xf3, 0x47, 0x52, 0xed, 0xa9, 0x29, 0xfa, 0xe6, 0x82, 0xff, 0x62, 0xfc, 0xff, 0x45, 0xa3, 0xff, 0xe8, 0x41, 0xff, 0x08, 0x4a, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x48, 0x52, 0xff, 0x08, 0x4a, 0xff, 0xe8, 0x41, 0xff, 0x45, 0xa3, 0xff, 0x62, 0xfc, 0xff, 0xe6, 0x82, 0xff, 0xa9, 0x29, 0xfa, 0x47, 0x52, 0xec, 0x44, 0xab, 0xf4, 0xe3, 0xd3, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0x87, 0x83, 0xbb, 0x30, + 0x00, 0x00, 0x00, 0x44, 0xbb, 0x11, 0x83, 0xb3, 0xc3, 0xa3, 0xc3, 0xff, 0xe3, 0xd3, 0xff, 0xa3, 0xcb, 0xff, 0x83, 0xbb, 0xff, 0x63, 0xbb, 0xff, 0x63, 0xb3, 0xff, 0x63, 0xb3, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0x63, 0xb3, 0xff, 0x63, 0xb3, 0xff, 0x63, 0xbb, 0xff, 0x83, 0xbb, 0xff, 0xa3, 0xcb, 0xff, 0xe3, 0xd3, 0xff, 0xa3, 0xc3, 0xff, 0x83, 0xbb, 0xc3, 0x44, 0xbb, 0x11, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa3, 0xb3, 0x14, 0x84, 0xbb, 0x8e, 0xa4, 0xbb, 0xde, 0xa3, 0xcb, 0xe9, 0xc3, 0xcb, 0xe1, 0xa3, 0xc3, 0xdf, 0x63, 0xb3, 0xdf, 0x83, 0xbb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0xa3, 0xcb, 0xdf, 0x83, 0xbb, 0xdf, 0x63, 0xb3, 0xdf, 0xa3, 0xc3, 0xdf, 0xc3, 0xcb, 0xe1, 0xa3, 0xcb, 0xe9, 0x84, 0xbb, 0xde, 0x84, 0xbb, 0x8e, 0xa3, 0xb3, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#endif +#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP != 0 + /*Pixel format: Alpha 8 bit, Red: 5 bit, Green: 6 bit, Blue: 5 bit BUT the 2 color bytes are swapped*/ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x84, 0x46, 0xec, 0x64, 0xb5, 0xec, 0x64, 0xed, 0xec, 0x64, 0xf5, 0xec, 0x64, 0xf0, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xef, 0xec, 0x64, 0xf1, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xeb, 0xec, 0x64, 0xb4, 0xec, 0x64, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x64, 0x75, 0xec, 0x64, 0xff, 0xec, 0x64, 0xff, 0xec, 0x64, 0xf9, 0xec, 0x64, 0xf1, 0xec, 0x64, 0xf3, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf4, 0xec, 0x64, 0xf3, 0xec, 0x64, 0xf1, 0xec, 0x64, 0xf9, 0xec, 0x64, 0xff, 0xec, 0x64, 0xff, 0xec, 0x64, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x64, 0x58, 0xec, 0x64, 0xff, 0xec, 0x64, 0xff, 0xec, 0x64, 0x9f, 0xec, 0x65, 0x3e, 0xec, 0x64, 0x33, 0xec, 0x64, 0x3a, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x64, 0x3b, 0xec, 0x65, 0x39, 0xec, 0x64, 0x33, 0xec, 0x64, 0x3e, 0xec, 0x64, 0x9f, 0xec, 0x64, 0xff, 0xec, 0x64, 0xff, 0xec, 0x64, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0xa5, 0x13, 0xec, 0x64, 0xbe, 0xe4, 0x64, 0xff, 0xec, 0x64, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x64, 0x92, 0xec, 0x64, 0xff, 0xec, 0x64, 0xbf, 0xec, 0xa5, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x44, 0x2f, 0xec, 0x64, 0xff, 0xec, 0x64, 0xef, 0xfc, 0xa5, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xa5, 0x31, 0xec, 0x64, 0xef, 0xec, 0x64, 0xff, 0xec, 0x44, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x01, 0xaa, 0xa0, 0x03, 0x84, 0x00, 0x02, 0xfc, 0x00, 0x02, 0xfc, 0x00, 0x02, 0xfc, 0x00, 0x02, 0x84, 0x00, 0x02, 0x00, 0x00, 0x00, 0xd4, 0x04, 0x38, 0xf4, 0x84, 0xff, 0xf4, 0xa5, 0xd9, 0xd3, 0xe4, 0x1d, 0x00, 0x00, 0x00, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x84, 0x00, 0x02, 0x00, 0x00, 0x00, 0xd3, 0xe4, 0x1d, 0xf4, 0xa5, 0xd9, 0xf4, 0x84, 0xff, 0xd4, 0x24, 0x39, 0x00, 0x00, 0x00, 0x84, 0x00, 0x02, 0xfc, 0x00, 0x02, 0xfc, 0x00, 0x02, 0xfc, 0x00, 0x02, 0x84, 0x00, 0x02, 0xaa, 0xa0, 0x03, 0xf8, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcb, 0xa4, 0x46, 0xc3, 0xc4, 0x93, 0xcb, 0xc4, 0xa3, 0xcb, 0xe4, 0x9c, 0xcb, 0xe4, 0x9a, 0xc3, 0xc4, 0x9a, 0xcb, 0xc4, 0x9a, 0xd3, 0xe4, 0x9a, 0xcb, 0xc4, 0x8f, 0xd3, 0xe4, 0xaf, 0xdc, 0x24, 0xff, 0xdc, 0x24, 0xf2, 0xc3, 0xc4, 0x9c, 0xcb, 0xc3, 0x8e, 0xd3, 0xe4, 0x9b, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9a, 0xd3, 0xe4, 0x9b, 0xcb, 0xc3, 0x8e, 0xc3, 0xc4, 0x9c, 0xdc, 0x24, 0xf2, 0xdc, 0x24, 0xff, 0xd3, 0xe4, 0xaf, 0xcb, 0xc4, 0x8f, 0xd3, 0xe4, 0x9a, 0xcb, 0xc4, 0x9a, 0xc3, 0xc4, 0x9a, 0xcb, 0xe4, 0x9a, 0xcb, 0xe4, 0x9c, 0xcb, 0xc4, 0xa1, 0xc3, 0xc4, 0x93, 0xcb, 0xa4, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0xc4, 0x76, 0xc3, 0xa4, 0xff, 0xdc, 0x03, 0xff, 0xec, 0x63, 0xff, 0xfc, 0x83, 0xff, 0xe4, 0x23, 0xff, 0xc3, 0xc4, 0xff, 0xdc, 0x04, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xec, 0x63, 0xff, 0xec, 0x43, 0xff, 0xec, 0x43, 0xff, 0xec, 0x43, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xec, 0x43, 0xff, 0xec, 0x43, 0xff, 0xec, 0x43, 0xff, 0xec, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xf4, 0x63, 0xff, 0xdc, 0x04, 0xff, 0xc3, 0xc4, 0xff, 0xe4, 0x23, 0xff, 0xfc, 0x83, 0xff, 0xec, 0x63, 0xff, 0xdc, 0x03, 0xff, 0xc3, 0xa4, 0xff, 0xc3, 0xc4, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xd4, 0x03, 0x0a, 0xc3, 0xe4, 0x5c, 0xc3, 0xc4, 0xff, 0xe4, 0x23, 0xff, 0xec, 0x43, 0xf9, 0xa3, 0x45, 0xef, 0x72, 0xa7, 0xfa, 0xab, 0x65, 0xff, 0xec, 0x43, 0xff, 0xbb, 0xa4, 0xff, 0x7a, 0xc6, 0xff, 0x82, 0xe6, 0xff, 0x8b, 0x06, 0xff, 0x8a, 0xe6, 0xff, 0x8a, 0xe6, 0xff, 0x8a, 0xe6, 0xff, 0x8a, 0xe6, 0xff, 0x8a, 0xe6, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8a, 0xe6, 0xff, 0x8a, 0xe6, 0xff, 0x8a, 0xe6, 0xff, 0x8a, 0xe6, 0xff, 0x8a, 0xe6, 0xff, 0x8b, 0x06, 0xff, 0x82, 0xe6, 0xff, 0x7a, 0xc6, 0xff, 0xbb, 0xa4, 0xff, 0xec, 0x43, 0xff, 0xab, 0x65, 0xff, 0x72, 0xa7, 0xfa, 0xa3, 0x45, 0xef, 0xec, 0x43, 0xf9, 0xe4, 0x23, 0xff, 0xc3, 0xa4, 0xff, 0xcb, 0xe4, 0x5b, 0xcb, 0x84, 0x09, + 0xcb, 0xc4, 0x79, 0xcb, 0xc4, 0xbc, 0xe4, 0x23, 0xff, 0xe4, 0x24, 0xfa, 0x5a, 0x67, 0xf1, 0x11, 0x69, 0xf4, 0x01, 0x0a, 0xfd, 0x72, 0xa6, 0xff, 0xfc, 0xa2, 0xff, 0x9b, 0x25, 0xff, 0x11, 0x49, 0xff, 0x19, 0x69, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x41, 0xa9, 0xff, 0x69, 0xc8, 0xff, 0x91, 0xc8, 0xff, 0xa1, 0xc8, 0xff, 0xb9, 0xc8, 0xff, 0xc9, 0xc8, 0xff, 0xd1, 0xc7, 0xff, 0xd1, 0xe7, 0xff, 0xd1, 0xc7, 0xff, 0xc9, 0xc8, 0xff, 0xb9, 0xc8, 0xff, 0xa1, 0xc8, 0xff, 0x89, 0xc8, 0xff, 0x61, 0xc8, 0xff, 0x41, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x29, 0xa9, 0xff, 0x19, 0x69, 0xff, 0x11, 0x49, 0xff, 0x9b, 0x25, 0xff, 0xfc, 0xa2, 0xff, 0x72, 0xa6, 0xff, 0x01, 0x0a, 0xfd, 0x11, 0x69, 0xf4, 0x62, 0x67, 0xf1, 0xe4, 0x24, 0xf9, 0xe4, 0x23, 0xff, 0xcb, 0xc4, 0xbc, 0xcb, 0xc4, 0x78, + 0xcb, 0xc4, 0xa8, 0xd3, 0xe4, 0xde, 0xf4, 0x63, 0xff, 0x82, 0xe6, 0xed, 0x09, 0x29, 0xf8, 0x29, 0xa8, 0xff, 0x21, 0x89, 0xff, 0x82, 0xc6, 0xff, 0xfc, 0xa2, 0xff, 0x9b, 0x25, 0xff, 0x19, 0x69, 0xff, 0x21, 0x89, 0xff, 0x31, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x39, 0xc9, 0xff, 0x69, 0xc8, 0xff, 0x99, 0xc8, 0xff, 0xc1, 0xc8, 0xff, 0xd1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xc9, 0xe8, 0xff, 0xc1, 0xc8, 0xff, 0x91, 0xc8, 0xff, 0x61, 0xc8, 0xff, 0x31, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x21, 0x89, 0xff, 0x19, 0x69, 0xff, 0x9b, 0x25, 0xff, 0xfc, 0xa2, 0xff, 0x82, 0xc6, 0xff, 0x21, 0x89, 0xff, 0x29, 0xa8, 0xff, 0x09, 0x29, 0xf9, 0x82, 0xe6, 0xee, 0xf4, 0x63, 0xff, 0xd4, 0x04, 0xde, 0xcb, 0xc4, 0xa8, + 0xcb, 0xe4, 0xa3, 0xdc, 0x23, 0xda, 0xe4, 0x24, 0xff, 0x4a, 0x28, 0xf5, 0x09, 0x49, 0xfd, 0x31, 0xc8, 0xff, 0x19, 0x69, 0xff, 0x82, 0xe6, 0xff, 0xfc, 0x62, 0xff, 0xc3, 0xa4, 0xff, 0x7a, 0xc6, 0xff, 0x7a, 0xc6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x92, 0xc6, 0xff, 0xb2, 0x67, 0xff, 0xd2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xd2, 0x07, 0xff, 0xb2, 0x67, 0xff, 0x8a, 0xc6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x82, 0xe6, 0xff, 0x7a, 0xc6, 0xff, 0x7a, 0xa6, 0xff, 0xc3, 0xa4, 0xff, 0xfc, 0x62, 0xff, 0x82, 0xc6, 0xff, 0x19, 0x69, 0xff, 0x31, 0xc8, 0xff, 0x09, 0x49, 0xfd, 0x4a, 0x08, 0xf5, 0xe4, 0x44, 0xff, 0xdc, 0x23, 0xda, 0xcb, 0xe4, 0xa3, + 0xcb, 0xe4, 0xa0, 0xdc, 0x03, 0xd6, 0xdc, 0x04, 0xff, 0x7a, 0xc6, 0xff, 0x5a, 0x47, 0xff, 0x62, 0x67, 0xff, 0x62, 0x87, 0xff, 0xbb, 0xa4, 0xff, 0xf4, 0x63, 0xff, 0xbb, 0xa4, 0xff, 0xa3, 0x45, 0xff, 0xab, 0x65, 0xff, 0xab, 0x65, 0xff, 0xab, 0x65, 0xff, 0xab, 0x65, 0xff, 0xb3, 0x45, 0xff, 0xca, 0x86, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x07, 0xff, 0xca, 0xa6, 0xff, 0xb3, 0x45, 0xff, 0xab, 0x65, 0xff, 0xab, 0x65, 0xff, 0xab, 0x65, 0xff, 0xab, 0x65, 0xff, 0xab, 0x65, 0xff, 0xa3, 0x45, 0xff, 0xbb, 0xa4, 0xff, 0xf4, 0x63, 0xff, 0xbb, 0xa4, 0xff, 0x62, 0x87, 0xff, 0x62, 0x67, 0xff, 0x5a, 0x47, 0xff, 0x7a, 0xc6, 0xff, 0xdc, 0x04, 0xff, 0xdc, 0x03, 0xd6, 0xcb, 0xe4, 0xa0, + 0xcb, 0xe4, 0xa0, 0xcb, 0xe4, 0xd6, 0xcb, 0xe4, 0xff, 0xec, 0x43, 0xff, 0xfc, 0x83, 0xff, 0xf4, 0x63, 0xff, 0xe4, 0x23, 0xff, 0xf4, 0x63, 0xff, 0xd3, 0xe4, 0xff, 0x42, 0x08, 0xff, 0x21, 0xa9, 0xff, 0x39, 0xe9, 0xff, 0x39, 0xe9, 0xff, 0x39, 0xe9, 0xff, 0x81, 0xe8, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc9, 0xe8, 0xff, 0x71, 0xe8, 0xff, 0x39, 0xe9, 0xff, 0x39, 0xe9, 0xff, 0x39, 0xe9, 0xff, 0x39, 0xe9, 0xff, 0x21, 0xa9, 0xff, 0x42, 0x08, 0xff, 0xd3, 0xe3, 0xff, 0xf4, 0x63, 0xff, 0xe4, 0x23, 0xff, 0xf4, 0x63, 0xff, 0xfc, 0x83, 0xff, 0xec, 0x43, 0xff, 0xcb, 0xe4, 0xff, 0xcb, 0xe4, 0xd6, 0xcb, 0xe4, 0xa0, + 0xcb, 0xe4, 0xa0, 0xcb, 0xe4, 0xd6, 0xd3, 0xe4, 0xff, 0xc3, 0xa4, 0xff, 0xb3, 0x84, 0xff, 0xbb, 0xa4, 0xff, 0xdc, 0x03, 0xff, 0xbb, 0xa4, 0xff, 0x42, 0x08, 0xff, 0x29, 0xa9, 0xff, 0x42, 0x08, 0xff, 0x42, 0x08, 0xff, 0x5a, 0x08, 0xff, 0xb9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0xb1, 0xe8, 0xff, 0x99, 0xe8, 0xff, 0x82, 0x08, 0xff, 0x72, 0x08, 0xff, 0x6a, 0x08, 0xff, 0x62, 0x08, 0xff, 0x6a, 0x08, 0xff, 0x72, 0x08, 0xff, 0x82, 0x08, 0xff, 0x99, 0xe8, 0xff, 0xb9, 0xe8, 0xff, 0xd9, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xa9, 0xe8, 0xff, 0x52, 0x08, 0xff, 0x42, 0x08, 0xff, 0x42, 0x08, 0xff, 0x42, 0x08, 0xff, 0x29, 0xa9, 0xff, 0x42, 0x08, 0xff, 0xbb, 0xa4, 0xff, 0xdc, 0x03, 0xff, 0xbb, 0xa4, 0xff, 0xb3, 0x84, 0xff, 0xc3, 0xa4, 0xff, 0xd3, 0xe4, 0xff, 0xcb, 0xe4, 0xd6, 0xcb, 0xe4, 0xa0, + 0xcb, 0xe4, 0xa0, 0xdc, 0x03, 0xd6, 0xdc, 0x23, 0xff, 0x4a, 0x27, 0xff, 0x09, 0x4a, 0xff, 0x19, 0x89, 0xff, 0xab, 0x65, 0xff, 0x93, 0x06, 0xff, 0x11, 0x6a, 0xff, 0x42, 0x28, 0xff, 0x52, 0x48, 0xff, 0x72, 0x08, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0xa2, 0x08, 0xff, 0x72, 0x08, 0xff, 0x52, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x52, 0x28, 0xff, 0x7a, 0x08, 0xff, 0xaa, 0x08, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xc9, 0xe7, 0xff, 0x6a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x08, 0xff, 0x11, 0x6a, 0xff, 0x93, 0x05, 0xff, 0xab, 0x65, 0xff, 0x19, 0x89, 0xff, 0x09, 0x4a, 0xff, 0x4a, 0x27, 0xff, 0xdc, 0x23, 0xff, 0xdc, 0x03, 0xd6, 0xcb, 0xe4, 0xa0, + 0xcb, 0xe4, 0xa0, 0xdc, 0x03, 0xd6, 0xdc, 0x23, 0xff, 0x52, 0x48, 0xff, 0x11, 0x69, 0xff, 0x21, 0xa9, 0xff, 0xab, 0x65, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x42, 0x09, 0xff, 0x8a, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc9, 0xe7, 0xff, 0x92, 0x08, 0xff, 0x52, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x5a, 0x28, 0xff, 0x9a, 0x08, 0xff, 0xd1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe8, 0xff, 0x7a, 0x08, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x08, 0xff, 0x29, 0xc9, 0xff, 0x9b, 0x45, 0xff, 0xab, 0x65, 0xff, 0x21, 0xa9, 0xff, 0x11, 0x69, 0xff, 0x52, 0x48, 0xff, 0xdc, 0x24, 0xff, 0xdc, 0x03, 0xd6, 0xcb, 0xe4, 0xa0, + 0xcb, 0xc4, 0xa0, 0xdc, 0x03, 0xd6, 0xdc, 0x04, 0xff, 0x62, 0x67, 0xff, 0x29, 0xa9, 0xff, 0x39, 0xe9, 0xff, 0xab, 0x65, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x81, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x9a, 0x08, 0xff, 0x52, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x5a, 0x28, 0xff, 0xa1, 0xe8, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x7a, 0x08, 0xff, 0x42, 0x09, 0xff, 0x29, 0xc9, 0xff, 0xa3, 0x45, 0xff, 0xab, 0x65, 0xff, 0x39, 0xe9, 0xff, 0x29, 0xa9, 0xff, 0x62, 0x67, 0xff, 0xdc, 0x04, 0xff, 0xdc, 0x03, 0xd6, 0xcb, 0xc4, 0xa0, + 0xcb, 0xc4, 0xa0, 0xdc, 0x03, 0xd6, 0xdc, 0x04, 0xff, 0x5a, 0x67, 0xff, 0x21, 0xa9, 0xff, 0x31, 0xe9, 0xff, 0xab, 0x65, 0xff, 0xa3, 0x45, 0xff, 0x79, 0xc9, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb1, 0xe8, 0xff, 0x6a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x29, 0xff, 0x3a, 0x09, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x7a, 0x28, 0xff, 0xc1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0x72, 0x08, 0xff, 0x29, 0xc9, 0xff, 0xa3, 0x45, 0xff, 0xab, 0x65, 0xff, 0x31, 0xe9, 0xff, 0x21, 0xa9, 0xff, 0x5a, 0x67, 0xff, 0xdc, 0x03, 0xff, 0xdc, 0x03, 0xd6, 0xcb, 0xc4, 0xa0, + 0xcb, 0xc4, 0xa0, 0xdc, 0x03, 0xd6, 0xdc, 0x03, 0xff, 0x5a, 0x67, 0xff, 0x21, 0xa9, 0xff, 0x31, 0xe9, 0xff, 0xab, 0x65, 0xff, 0xb2, 0xc6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x72, 0x08, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x09, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x48, 0xff, 0x5a, 0x67, 0xff, 0x62, 0x66, 0xff, 0x6a, 0x86, 0xff, 0x72, 0x86, 0xff, 0x72, 0x85, 0xff, 0x72, 0x85, 0xff, 0x72, 0x86, 0xff, 0x6a, 0x86, 0xff, 0x62, 0x66, 0xff, 0x5a, 0x67, 0xff, 0x4a, 0x48, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x09, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x5a, 0x28, 0xff, 0xb1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe8, 0xff, 0x51, 0xc9, 0xff, 0xa3, 0x45, 0xff, 0xab, 0x65, 0xff, 0x31, 0xe9, 0xff, 0x21, 0xa9, 0xff, 0x5a, 0x67, 0xff, 0xdc, 0x03, 0xff, 0xdc, 0x03, 0xd6, 0xcb, 0xc4, 0xa0, + 0xcb, 0xc4, 0xa0, 0xdc, 0x03, 0xd6, 0xdc, 0x03, 0xff, 0x5a, 0x67, 0xff, 0x21, 0xa9, 0xff, 0x31, 0xe9, 0xff, 0xb3, 0x45, 0xff, 0xda, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc9, 0xe8, 0xff, 0x72, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x2a, 0xff, 0x42, 0x29, 0xff, 0x5a, 0x67, 0xff, 0x72, 0x86, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0x86, 0xff, 0x5a, 0x67, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x2a, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x52, 0x29, 0xff, 0xaa, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc1, 0xc8, 0xff, 0xa3, 0x25, 0xff, 0xab, 0x65, 0xff, 0x31, 0xe9, 0xff, 0x21, 0xa9, 0xff, 0x5a, 0x67, 0xff, 0xdc, 0x03, 0xff, 0xdc, 0x03, 0xd6, 0xcb, 0xc4, 0xa0, + 0xcb, 0xc4, 0xa0, 0xdc, 0x03, 0xd6, 0xdc, 0x03, 0xff, 0x5a, 0x67, 0xff, 0x21, 0xa9, 0xff, 0x31, 0xe9, 0xff, 0xd2, 0x47, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x7a, 0x28, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x5a, 0x47, 0xff, 0x72, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x72, 0xa5, 0xff, 0x5a, 0x47, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x52, 0x28, 0xff, 0xa1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xca, 0x66, 0xff, 0xab, 0x65, 0xff, 0x31, 0xe9, 0xff, 0x21, 0xa9, 0xff, 0x5a, 0x67, 0xff, 0xdc, 0x03, 0xff, 0xdc, 0x03, 0xd6, 0xcb, 0xc4, 0xa0, + 0xcb, 0xc4, 0xa0, 0xdc, 0x03, 0xd6, 0xdc, 0x03, 0xff, 0x5a, 0x67, 0xff, 0x29, 0xa9, 0xff, 0x79, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe8, 0xff, 0x7a, 0x28, 0xff, 0x72, 0x86, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x72, 0x86, 0xff, 0x52, 0x48, 0xff, 0x42, 0x2a, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x52, 0x28, 0xff, 0xb9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xbb, 0x05, 0xff, 0x31, 0xe9, 0xff, 0x29, 0xa9, 0xff, 0x5a, 0x67, 0xff, 0xdc, 0x03, 0xff, 0xdc, 0x03, 0xd6, 0xcb, 0xc4, 0xa0, + 0xcb, 0xc4, 0xa0, 0xdc, 0x03, 0xd6, 0xdc, 0x03, 0xff, 0x5a, 0x67, 0xff, 0x31, 0xa9, 0xff, 0xd1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb9, 0xe8, 0xff, 0x62, 0x28, 0xff, 0xa2, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x9a, 0x65, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x5a, 0x67, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x5a, 0x28, 0xff, 0xd1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x27, 0xff, 0x39, 0xe9, 0xff, 0x29, 0xa9, 0xff, 0x5a, 0x67, 0xff, 0xdc, 0x03, 0xff, 0xdc, 0x03, 0xd6, 0xcb, 0xc4, 0xa0, + 0xcb, 0xc4, 0xa0, 0xd4, 0x03, 0xd6, 0xd4, 0x03, 0xff, 0x5a, 0x67, 0xff, 0x91, 0xc8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe8, 0xff, 0x6a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x52, 0x28, 0xff, 0xb1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x92, 0x66, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x62, 0x67, 0xff, 0x3a, 0x2a, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x72, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x89, 0xe8, 0xff, 0x29, 0xa9, 0xff, 0x5a, 0x67, 0xff, 0xdc, 0x03, 0xff, 0xdc, 0x03, 0xd6, 0xcb, 0xc4, 0xa0, + 0xcb, 0xc4, 0xa0, 0xd4, 0x03, 0xd6, 0xd4, 0x03, 0xff, 0x6a, 0x47, 0xff, 0xd1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x99, 0xe8, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x52, 0x29, 0xff, 0xa9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x92, 0x66, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xc4, 0xff, 0x5a, 0x67, 0xff, 0x3a, 0x0a, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0xb2, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc1, 0xe8, 0xff, 0x31, 0xa9, 0xff, 0x5a, 0x67, 0xff, 0xd4, 0x03, 0xff, 0xd4, 0x03, 0xd6, 0xcb, 0xc4, 0xa0, + 0xcb, 0xc4, 0xa0, 0xd4, 0x03, 0xd6, 0xd4, 0x03, 0xff, 0xa2, 0x27, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc1, 0xc8, 0xff, 0x4a, 0x09, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x3a, 0x2a, 0xff, 0x5a, 0x48, 0xff, 0xca, 0x26, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x92, 0x66, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x82, 0xa5, 0xff, 0x82, 0xc4, 0xff, 0x52, 0x48, 0xff, 0x3a, 0x2a, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x5a, 0x28, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x71, 0xc8, 0xff, 0x5a, 0x67, 0xff, 0xd4, 0x03, 0xff, 0xd4, 0x03, 0xd6, 0xcb, 0xc4, 0xa0, + 0xc3, 0xc4, 0xa0, 0xd3, 0xe3, 0xd6, 0xd3, 0xe4, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x81, 0xe9, 0xff, 0x42, 0x09, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x7a, 0xa5, 0xff, 0x8a, 0xa5, 0xff, 0xc2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x92, 0x66, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0x86, 0xff, 0x6a, 0x86, 0xff, 0x62, 0x67, 0xff, 0x62, 0x67, 0xff, 0x6a, 0x66, 0xff, 0x72, 0x86, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x82, 0xc4, 0xff, 0x7a, 0xa5, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0xa1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb1, 0xc8, 0xff, 0x5a, 0x67, 0xff, 0xd4, 0x03, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xc4, 0xa0, + 0xc3, 0xc4, 0xa0, 0xd3, 0xe3, 0xd6, 0xdb, 0x45, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x07, 0xff, 0x31, 0xc9, 0xff, 0x42, 0x09, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x6a, 0x87, 0xff, 0x82, 0xc4, 0xff, 0x72, 0x85, 0xff, 0x7a, 0x85, 0xff, 0xc2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x9a, 0x66, 0xff, 0x62, 0x67, 0xff, 0x52, 0x49, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x48, 0xff, 0x62, 0x67, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0x85, 0xff, 0x72, 0x85, 0xff, 0x72, 0x85, 0xff, 0x72, 0x85, 0xff, 0x72, 0x85, 0xff, 0x72, 0x85, 0xff, 0x72, 0x85, 0xff, 0x7a, 0xa6, 0xff, 0x82, 0xc4, 0xff, 0x6a, 0x86, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x5a, 0x09, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xc8, 0xff, 0x7a, 0x47, 0xff, 0xd3, 0xe3, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xc4, 0xa0, + 0xc3, 0xc4, 0xa0, 0xd3, 0xe3, 0xd7, 0xe2, 0xa6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xca, 0x67, 0xff, 0x29, 0xc9, 0xff, 0x42, 0x09, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x29, 0xff, 0x52, 0x69, 0xff, 0x72, 0x42, 0xff, 0x61, 0x80, 0xff, 0x59, 0x80, 0xff, 0x61, 0xa1, 0xff, 0x61, 0xa1, 0xff, 0xb9, 0xc5, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x72, 0x29, 0xff, 0x42, 0x09, 0xff, 0x21, 0x25, 0xff, 0x21, 0x04, 0xff, 0x29, 0x25, 0xff, 0x21, 0x04, 0xff, 0x31, 0xa7, 0xff, 0x4a, 0x4a, 0xff, 0x42, 0x2a, 0xff, 0x3a, 0x09, 0xff, 0x52, 0x49, 0xff, 0x62, 0x24, 0xff, 0x61, 0xa0, 0xff, 0x61, 0xa0, 0xff, 0x61, 0xa0, 0xff, 0x61, 0xa0, 0xff, 0x61, 0xa0, 0xff, 0x61, 0xa1, 0xff, 0x59, 0x80, 0xff, 0x59, 0xa0, 0xff, 0x72, 0x64, 0xff, 0x82, 0xc5, 0xff, 0x52, 0x48, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x09, 0xff, 0xb1, 0xc8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xa2, 0x27, 0xff, 0xd3, 0xe4, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xc4, 0xa0, + 0xc3, 0xc4, 0xa0, 0xdb, 0xa4, 0xdb, 0xe2, 0x47, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb2, 0xe6, 0xff, 0x29, 0xc9, 0xff, 0x42, 0x09, 0xff, 0x4a, 0x49, 0xff, 0x42, 0x29, 0xff, 0x51, 0xc3, 0xff, 0x69, 0xe1, 0xff, 0x93, 0xab, 0xff, 0xac, 0xaf, 0xff, 0xb4, 0xd0, 0xff, 0xb4, 0xd0, 0xff, 0xb4, 0xb0, 0xff, 0xd2, 0x89, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0x69, 0xc7, 0xff, 0x7b, 0xcf, 0xff, 0x9c, 0xf3, 0xff, 0x94, 0xb2, 0xff, 0x94, 0x92, 0xff, 0x52, 0x8a, 0xff, 0x39, 0xc7, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x29, 0xff, 0x39, 0xe9, 0xff, 0x52, 0xab, 0xff, 0xac, 0xb0, 0xff, 0xb4, 0xf0, 0xff, 0xac, 0xaf, 0xff, 0xac, 0xaf, 0xff, 0xac, 0xd0, 0xff, 0xb4, 0xd0, 0xff, 0xac, 0x8f, 0xff, 0x8b, 0x48, 0xff, 0x59, 0x80, 0xff, 0x72, 0x42, 0xff, 0x6a, 0x87, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x09, 0xff, 0x71, 0xc9, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xba, 0x07, 0xff, 0xdb, 0xa4, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xc4, 0xa0, + 0xc3, 0xc4, 0xa0, 0xdb, 0x25, 0xe4, 0xe2, 0x27, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x42, 0x09, 0xff, 0x4a, 0x29, 0xff, 0x41, 0xc6, 0xff, 0x72, 0x64, 0xff, 0xd6, 0x36, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0x8e, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe8, 0xff, 0xf5, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb5, 0x96, 0xff, 0x29, 0x25, 0xff, 0x41, 0xe8, 0xff, 0x4a, 0x49, 0xff, 0x31, 0x86, 0xff, 0x8c, 0x52, 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, 0xb5, 0x11, 0xff, 0x69, 0xc1, 0xff, 0x72, 0x44, 0xff, 0x4a, 0x48, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x41, 0xc9, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xca, 0x07, 0xff, 0xdb, 0x45, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xc4, 0xa0, + 0xc3, 0xa4, 0xa0, 0xda, 0xc6, 0xed, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd2, 0x47, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x42, 0x29, 0xff, 0x42, 0x09, 0xff, 0x51, 0xc5, 0xff, 0xcd, 0x93, 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, 0xe3, 0x6e, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0x8a, 0xff, 0xfe, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x3c, 0xff, 0x42, 0x28, 0xff, 0x31, 0x86, 0xff, 0x4a, 0x49, 0xff, 0x31, 0x86, 0xff, 0x94, 0x72, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x9d, 0xff, 0xf7, 0x7d, 0xff, 0xff, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa4, 0x6e, 0xff, 0x69, 0xe1, 0xff, 0x5a, 0x47, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x31, 0xc9, 0xff, 0xda, 0x27, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0xda, 0xc6, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xa4, 0xa0, + 0xc3, 0xc4, 0xa0, 0xe2, 0x66, 0xf2, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xca, 0xa6, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x42, 0x29, 0xff, 0x41, 0xe7, 0xff, 0x6a, 0xa7, 0xff, 0xf7, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbd, 0x32, 0xff, 0x83, 0x07, 0xff, 0x8b, 0x28, 0xff, 0x9c, 0x0c, 0xff, 0xf7, 0x5c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xca, 0x8a, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x8a, 0xff, 0xed, 0xd7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x6b, 0x6d, 0xff, 0x21, 0x24, 0xff, 0x4a, 0x29, 0xff, 0x31, 0xa6, 0xff, 0x8c, 0x51, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0x37, 0xff, 0x72, 0x65, 0xff, 0x7a, 0xc6, 0xff, 0x7a, 0xc6, 0xff, 0xc5, 0xb5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcd, 0xf5, 0xff, 0x72, 0x22, 0xff, 0x62, 0x25, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x09, 0xff, 0x31, 0xc9, 0xff, 0xca, 0x67, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xe2, 0x86, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xc4, 0xa0, + 0xc3, 0xc4, 0xa0, 0xe2, 0x47, 0xf6, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc2, 0xc6, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x42, 0x29, 0xff, 0x41, 0xc6, 0xff, 0x83, 0x08, 0xff, 0xf7, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x7d, 0xff, 0x72, 0x45, 0xff, 0x51, 0x20, 0xff, 0x61, 0xa0, 0xff, 0x51, 0x41, 0xff, 0xcd, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9c, 0xb2, 0xff, 0xa9, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x29, 0xff, 0xf6, 0x18, 0xff, 0xff, 0xff, 0xff, 0x9c, 0xd3, 0xff, 0x21, 0x04, 0xff, 0x42, 0x08, 0xff, 0x39, 0xa6, 0xff, 0x8c, 0x51, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xad, 0x54, 0xff, 0x38, 0xa0, 0xff, 0x61, 0x80, 0xff, 0x48, 0xc0, 0xff, 0x8b, 0x49, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0x57, 0xff, 0x72, 0x43, 0xff, 0x6a, 0x44, 0xff, 0x4a, 0x48, 0xff, 0x3a, 0x09, 0xff, 0x31, 0xc9, 0xff, 0xc2, 0xa6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x46, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xc4, 0xa0, + 0xc3, 0xa4, 0xa0, 0xe2, 0x27, 0xf9, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xbb, 0x05, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x3a, 0x09, 0xff, 0x49, 0xe6, 0xff, 0x83, 0x28, 0xff, 0xf7, 0x5c, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x5c, 0xff, 0x72, 0x65, 0xff, 0x61, 0xe2, 0xff, 0x72, 0x84, 0xff, 0x61, 0xc1, 0xff, 0xbd, 0x32, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0x84, 0x30, 0xff, 0x39, 0x86, 0xff, 0xa9, 0xa7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x8a, 0xff, 0xfe, 0x39, 0xff, 0xce, 0x59, 0xff, 0x31, 0x86, 0xff, 0x39, 0xa7, 0xff, 0x39, 0xa6, 0xff, 0x8c, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0x35, 0xff, 0x28, 0xa1, 0xff, 0x61, 0xa0, 0xff, 0x48, 0xe0, 0xff, 0x93, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, 0x37, 0xff, 0x72, 0x43, 0xff, 0x6a, 0x44, 0xff, 0x52, 0x48, 0xff, 0x3a, 0x09, 0xff, 0x29, 0xc9, 0xff, 0xba, 0xc6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xa4, 0xa0, + 0xc3, 0xa4, 0xa0, 0xe2, 0x07, 0xfb, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xbb, 0x25, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x3a, 0x09, 0xff, 0x49, 0xe6, 0xff, 0x8b, 0x27, 0xff, 0xf7, 0x5c, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x7d, 0xff, 0x7a, 0xa5, 0xff, 0x61, 0xe2, 0xff, 0x7a, 0xc5, 0xff, 0x7a, 0xa4, 0xff, 0x62, 0x87, 0xff, 0x52, 0xab, 0xff, 0x52, 0xaa, 0xff, 0x4a, 0x49, 0xff, 0x41, 0xe8, 0xff, 0x39, 0x66, 0xff, 0xca, 0xcb, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0xaa, 0xff, 0xed, 0xb6, 0xff, 0x4a, 0x49, 0xff, 0x29, 0x45, 0xff, 0x31, 0xa6, 0xff, 0x8c, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xce, 0x7a, 0xff, 0x83, 0xad, 0xff, 0xa4, 0x2c, 0xff, 0xa4, 0x2d, 0xff, 0xde, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb4, 0xd0, 0xff, 0x6a, 0x02, 0xff, 0x72, 0x84, 0xff, 0x52, 0x48, 0xff, 0x3a, 0x09, 0xff, 0x29, 0xc9, 0xff, 0xba, 0xe6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xa4, 0xa0, + 0xc3, 0xa4, 0xa0, 0xe2, 0x07, 0xfc, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xbb, 0x25, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x3a, 0x0a, 0xff, 0x49, 0xe6, 0xff, 0x8b, 0x27, 0xff, 0xf7, 0x5c, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x7d, 0xff, 0x7a, 0xa5, 0xff, 0x61, 0xe2, 0xff, 0x7a, 0xc5, 0xff, 0x82, 0xc5, 0xff, 0x52, 0x27, 0xff, 0x29, 0x87, 0xff, 0x39, 0xa6, 0xff, 0x4a, 0x28, 0xff, 0x41, 0xe8, 0xff, 0x39, 0xa7, 0xff, 0xc5, 0x96, 0xff, 0xeb, 0xcf, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0xaa, 0xff, 0x93, 0x0c, 0xff, 0x21, 0x24, 0xff, 0x31, 0x86, 0xff, 0x8c, 0x71, 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, 0xbd, 0x73, 0xff, 0x59, 0x60, 0xff, 0x72, 0x43, 0xff, 0x82, 0xc5, 0xff, 0x5a, 0x47, 0xff, 0x3a, 0x09, 0xff, 0x29, 0xc9, 0xff, 0xb2, 0xe6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xa4, 0xa0, + 0xc3, 0xa4, 0xa0, 0xe2, 0x07, 0xfb, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xbb, 0x25, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x3a, 0x0a, 0xff, 0x49, 0xe6, 0xff, 0x8b, 0x27, 0xff, 0xf7, 0x5c, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x7d, 0xff, 0x7a, 0xa5, 0xff, 0x61, 0xe2, 0xff, 0x7a, 0xc5, 0xff, 0x82, 0xa5, 0xff, 0x52, 0x27, 0xff, 0x31, 0xa8, 0xff, 0x39, 0xc7, 0xff, 0x4a, 0x28, 0xff, 0x39, 0xc7, 0xff, 0x5a, 0xaa, 0xff, 0xef, 0x5d, 0xff, 0xff, 0x9e, 0xff, 0xe3, 0x6e, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x49, 0xff, 0x61, 0x66, 0xff, 0x29, 0x45, 0xff, 0x8c, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0xb9, 0xff, 0x83, 0x08, 0xff, 0x6a, 0x22, 0xff, 0x7a, 0xa5, 0xff, 0x5a, 0x48, 0xff, 0x3a, 0x09, 0xff, 0x29, 0xc9, 0xff, 0xba, 0xe6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xa4, 0xa0, + 0xc3, 0xa4, 0xa0, 0xe2, 0x27, 0xf9, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xbb, 0x06, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x3a, 0x09, 0xff, 0x49, 0xe6, 0xff, 0x8b, 0x27, 0xff, 0xf7, 0x5c, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x7d, 0xff, 0x7a, 0xa5, 0xff, 0x61, 0xe2, 0xff, 0x7a, 0xc6, 0xff, 0x82, 0xa5, 0xff, 0x52, 0x06, 0xff, 0x39, 0xe8, 0xff, 0x39, 0xc7, 0xff, 0x41, 0xe7, 0xff, 0x31, 0x86, 0xff, 0x7b, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbd, 0x35, 0xff, 0xa9, 0x86, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xc7, 0xff, 0x59, 0x25, 0xff, 0x8c, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbd, 0xf8, 0xff, 0x52, 0x27, 0xff, 0x82, 0xe6, 0xff, 0x7a, 0xa5, 0xff, 0xac, 0xb0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0x98, 0xff, 0x72, 0x64, 0xff, 0x72, 0x43, 0xff, 0x5a, 0x68, 0xff, 0x3a, 0x09, 0xff, 0x31, 0xc9, 0xff, 0xba, 0xa6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x27, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xa4, 0xa0, + 0xc3, 0xa4, 0xa0, 0xe2, 0x46, 0xf6, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc2, 0xc6, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x3a, 0x09, 0xff, 0x49, 0xe6, 0xff, 0x8b, 0x28, 0xff, 0xf7, 0x5c, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x5c, 0xff, 0x72, 0x85, 0xff, 0x6a, 0x02, 0xff, 0x7a, 0xa5, 0xff, 0x6a, 0x02, 0xff, 0xac, 0xd0, 0xff, 0xe7, 0x3e, 0xff, 0xe6, 0xfc, 0xff, 0x7b, 0xaf, 0xff, 0x20, 0xe4, 0xff, 0x9c, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x3d, 0xff, 0xcd, 0xf8, 0xff, 0xdb, 0x4d, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xc7, 0xff, 0xa3, 0xae, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9d, 0x35, 0xff, 0x20, 0x41, 0xff, 0x61, 0x80, 0xff, 0x50, 0xe0, 0xff, 0x6a, 0x05, 0xff, 0xf7, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xef, 0x3c, 0xff, 0x82, 0xe6, 0xff, 0x6a, 0x23, 0xff, 0x52, 0x48, 0xff, 0x3a, 0x09, 0xff, 0x31, 0xc9, 0xff, 0xc2, 0x86, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x46, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xa4, 0xa0, + 0xc3, 0xa4, 0xa0, 0xe2, 0x86, 0xf1, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xca, 0x86, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x3a, 0x29, 0xff, 0x41, 0xc6, 0xff, 0x83, 0x28, 0xff, 0xff, 0x7d, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x5c, 0xff, 0x61, 0xe4, 0xff, 0x51, 0x20, 0xff, 0x61, 0xc1, 0xff, 0x48, 0xe1, 0xff, 0xcd, 0xd4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9c, 0xb3, 0xff, 0x29, 0x24, 0xff, 0xc6, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9e, 0xff, 0xeb, 0xcf, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x28, 0xff, 0xfe, 0x59, 0xff, 0xff, 0xff, 0xff, 0xad, 0x55, 0xff, 0x38, 0xe1, 0xff, 0x69, 0xe1, 0xff, 0x59, 0x40, 0xff, 0x69, 0xe4, 0xff, 0xef, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xef, 0x3c, 0xff, 0x82, 0xe6, 0xff, 0x6a, 0x23, 0xff, 0x52, 0x48, 0xff, 0x3a, 0x09, 0xff, 0x31, 0xc9, 0xff, 0xca, 0x67, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xda, 0x86, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xa4, 0xa0, + 0xc3, 0xa4, 0xa0, 0xda, 0xc5, 0xeb, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd2, 0x47, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x42, 0x29, 0xff, 0x41, 0xe7, 0xff, 0x72, 0xc7, 0xff, 0xf7, 0x5c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa4, 0x4d, 0xff, 0x61, 0xc1, 0xff, 0x6a, 0x03, 0xff, 0x7a, 0xc7, 0xff, 0xe6, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7b, 0xef, 0xff, 0x42, 0x08, 0xff, 0xef, 0x7d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xad, 0x55, 0xff, 0xa4, 0xf4, 0xff, 0xad, 0x55, 0xff, 0xa4, 0xb2, 0xff, 0xdb, 0x2d, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0x8a, 0xff, 0xfe, 0x79, 0xff, 0xc5, 0xb5, 0xff, 0x51, 0x43, 0xff, 0x61, 0xc2, 0xff, 0x59, 0x81, 0xff, 0x93, 0xcb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe6, 0xfa, 0xff, 0x7a, 0xa5, 0xff, 0x62, 0x24, 0xff, 0x4a, 0x49, 0xff, 0x42, 0x09, 0xff, 0x31, 0xc9, 0xff, 0xda, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0xda, 0xe6, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xa4, 0xa0, + 0xc3, 0xa4, 0xa0, 0xdb, 0x25, 0xe3, 0xe2, 0x27, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xa3, 0x25, 0xff, 0x29, 0xc9, 0xff, 0x42, 0x29, 0xff, 0x42, 0x08, 0xff, 0x51, 0xe5, 0xff, 0xd5, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x3c, 0xff, 0xef, 0x1b, 0xff, 0xff, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x42, 0x28, 0xff, 0x63, 0x0c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc6, 0x18, 0xff, 0x08, 0x61, 0xff, 0x10, 0xa2, 0xff, 0x29, 0x65, 0xff, 0x00, 0x00, 0xff, 0x62, 0xcb, 0xff, 0xeb, 0xaf, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0x8a, 0xff, 0xf6, 0x17, 0xff, 0xe6, 0xd9, 0xff, 0xe6, 0xb9, 0xff, 0xe6, 0xda, 0xff, 0xff, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcd, 0xb5, 0xff, 0x72, 0x22, 0xff, 0x5a, 0x25, 0xff, 0x42, 0x29, 0xff, 0x42, 0x09, 0xff, 0x49, 0xc9, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xca, 0x07, 0xff, 0xdb, 0x45, 0xff, 0xd3, 0xe3, 0xd6, 0xc3, 0xa4, 0xa0, + 0xc3, 0xa4, 0xa0, 0xd3, 0x84, 0xda, 0xe2, 0x46, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xba, 0xc6, 0xff, 0x29, 0xc9, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x41, 0xa5, 0xff, 0x83, 0x07, 0xff, 0xef, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x94, 0x70, 0xff, 0x10, 0xa3, 0xff, 0xb5, 0x96, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9c, 0xd3, 0xff, 0x18, 0xa2, 0xff, 0x39, 0xc7, 0xff, 0x42, 0x28, 0xff, 0x21, 0x24, 0xff, 0x39, 0xc7, 0xff, 0xe7, 0x1c, 0xff, 0xeb, 0xaf, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xea, 0x8a, 0xff, 0xfe, 0x59, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x1b, 0xff, 0x82, 0xe6, 0xff, 0x6a, 0x02, 0xff, 0x52, 0x48, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x79, 0xc9, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb2, 0x07, 0xff, 0xd3, 0xa4, 0xff, 0xcb, 0xe3, 0xd6, 0xc3, 0xa4, 0xa0, + 0xc3, 0xa4, 0xa0, 0xd3, 0xc3, 0xd7, 0xda, 0xa6, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xca, 0x46, 0xff, 0x29, 0xc9, 0xff, 0x42, 0x09, 0xff, 0x4a, 0x49, 0xff, 0x42, 0x29, 0xff, 0x59, 0xc2, 0xff, 0x82, 0xe6, 0xff, 0xb5, 0x11, 0xff, 0xcd, 0xd5, 0xff, 0xcd, 0xb5, 0xff, 0xcd, 0xb4, 0xff, 0xcd, 0xd5, 0xff, 0xc5, 0xb4, 0xff, 0x9b, 0xcb, 0xff, 0x59, 0x80, 0xff, 0x49, 0xc6, 0xff, 0x94, 0xd4, 0xff, 0xbd, 0xf8, 0xff, 0xb5, 0x96, 0xff, 0x5a, 0xcb, 0xff, 0x39, 0xa7, 0xff, 0x52, 0x69, 0xff, 0x4a, 0x69, 0xff, 0x42, 0x28, 0xff, 0x39, 0xa7, 0xff, 0x8c, 0x51, 0xff, 0xc5, 0xd7, 0xff, 0xdb, 0x0c, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x49, 0xff, 0xcc, 0x91, 0xff, 0xcd, 0xd5, 0xff, 0xcd, 0xd5, 0xff, 0xb4, 0xf1, 0xff, 0x72, 0x85, 0xff, 0x69, 0xc1, 0xff, 0x6a, 0x86, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x09, 0xff, 0xb9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x9a, 0x27, 0xff, 0xd3, 0xc3, 0xff, 0xcb, 0xe3, 0xd6, 0xc3, 0xa4, 0xa0, + 0xc3, 0xa4, 0xa0, 0xcb, 0xe3, 0xd6, 0xd3, 0x44, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0x39, 0xc9, 0xff, 0x42, 0x09, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x29, 0xff, 0x5a, 0x47, 0xff, 0x72, 0x22, 0xff, 0x69, 0xe2, 0xff, 0x6a, 0x02, 0xff, 0x6a, 0x02, 0xff, 0x6a, 0x02, 0xff, 0x6a, 0x02, 0xff, 0x6a, 0x02, 0xff, 0x61, 0xe2, 0xff, 0x7a, 0x64, 0xff, 0x82, 0xc6, 0xff, 0x52, 0x06, 0xff, 0x29, 0x86, 0xff, 0x29, 0x66, 0xff, 0x39, 0xe8, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x49, 0xff, 0x31, 0xa7, 0xff, 0x31, 0x86, 0xff, 0x31, 0x87, 0xff, 0xb1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x8a, 0x04, 0xff, 0x6a, 0x02, 0xff, 0x61, 0xe2, 0xff, 0x6a, 0x02, 0xff, 0x82, 0xa4, 0xff, 0x5a, 0x68, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x62, 0x09, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc9, 0xc8, 0xff, 0x7a, 0x47, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xe3, 0xd6, 0xc3, 0xa4, 0xa0, + 0xc3, 0xa4, 0xa0, 0xcb, 0xe3, 0xd6, 0xcb, 0xc3, 0xff, 0xc9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x91, 0xc8, 0xff, 0x42, 0x09, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0x84, 0xff, 0x72, 0x64, 0xff, 0x72, 0x64, 0xff, 0x72, 0x64, 0xff, 0x72, 0x64, 0xff, 0x72, 0x64, 0xff, 0x72, 0x85, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0x84, 0xff, 0x62, 0x25, 0xff, 0x4a, 0x07, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x09, 0xff, 0x39, 0xe8, 0xff, 0x4a, 0x07, 0xff, 0x6a, 0x66, 0xff, 0xc2, 0x06, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x92, 0x45, 0xff, 0x72, 0x65, 0xff, 0x82, 0xc4, 0xff, 0x72, 0x86, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0xaa, 0x08, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xa9, 0xc8, 0xff, 0x5a, 0x47, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xe3, 0xd6, 0xc3, 0xa4, 0xa0, + 0xbb, 0xa4, 0xa0, 0xcb, 0xe3, 0xd6, 0xcb, 0xc3, 0xff, 0x9a, 0x27, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe8, 0xff, 0x52, 0x09, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x52, 0x48, 0xff, 0x82, 0xc5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0x85, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0x86, 0xff, 0x62, 0x67, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x62, 0x67, 0xff, 0x72, 0x86, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0x85, 0xff, 0xc2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x9a, 0x66, 0xff, 0x82, 0xc4, 0xff, 0x52, 0x48, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x62, 0x28, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x69, 0xc9, 0xff, 0x5a, 0x47, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xe3, 0xd6, 0xbb, 0xa4, 0xa0, + 0xbb, 0xa3, 0xa0, 0xcb, 0xc3, 0xd6, 0xcb, 0xc3, 0xff, 0x6a, 0x47, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xa1, 0xe8, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x0a, 0xff, 0x62, 0x67, 0xff, 0x8a, 0xc4, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0x85, 0xff, 0xc2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x07, 0xff, 0x8a, 0x47, 0xff, 0x3a, 0x0a, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0xb9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc1, 0xe8, 0xff, 0x29, 0xa9, 0xff, 0x5a, 0x47, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xc3, 0xd6, 0xbb, 0xa4, 0xa0, + 0xbb, 0xa4, 0xa0, 0xcb, 0xc3, 0xd6, 0xcb, 0xc3, 0xff, 0x5a, 0x47, 0xff, 0x89, 0xc8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x72, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x2a, 0xff, 0x72, 0x86, 0xff, 0x8a, 0xc4, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0x85, 0xff, 0xc2, 0x27, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe8, 0xff, 0x6a, 0x09, 0xff, 0x4a, 0x28, 0xff, 0x82, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0x79, 0xe8, 0xff, 0x29, 0xa9, 0xff, 0x5a, 0x47, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xc3, 0xd6, 0xbb, 0xa3, 0xa0, + 0xbb, 0xa3, 0xa0, 0xcb, 0xc3, 0xd6, 0xcb, 0xc3, 0xff, 0x5a, 0x47, 0xff, 0x31, 0xa9, 0xff, 0xc9, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc9, 0xe8, 0xff, 0x5a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x72, 0x86, 0xff, 0x8a, 0xc4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0x85, 0xff, 0xc2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc9, 0xe8, 0xff, 0x8a, 0x08, 0xff, 0xd1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x27, 0xff, 0x31, 0xe9, 0xff, 0x29, 0xa9, 0xff, 0x5a, 0x47, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xc3, 0xd6, 0xbb, 0xa3, 0xa0, + 0xbb, 0xa3, 0xa0, 0xcb, 0xc3, 0xd6, 0xcb, 0xc3, 0xff, 0x5a, 0x47, 0xff, 0x29, 0xa9, 0xff, 0x69, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb1, 0xe8, 0xff, 0x52, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x6a, 0x86, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x8a, 0xa5, 0xff, 0xca, 0x26, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xbb, 0x25, 0xff, 0x31, 0xe9, 0xff, 0x29, 0xa9, 0xff, 0x5a, 0x47, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xc3, 0xd6, 0xbb, 0xa3, 0xa0, + 0xbb, 0x83, 0xa0, 0xcb, 0xc3, 0xd6, 0xcb, 0xc3, 0xff, 0x5a, 0x67, 0xff, 0x29, 0xa9, 0xff, 0x31, 0xe9, 0xff, 0xd2, 0x66, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xa1, 0xe8, 0xff, 0x52, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x62, 0x67, 0xff, 0x82, 0xc4, 0xff, 0x82, 0xc4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xc4, 0xff, 0x82, 0xc4, 0xff, 0x6a, 0x67, 0xff, 0xa9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc2, 0x86, 0xff, 0xab, 0x65, 0xff, 0x31, 0xe9, 0xff, 0x29, 0xa9, 0xff, 0x5a, 0x67, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xc3, 0xd6, 0xbb, 0x83, 0xa0, + 0xbb, 0x83, 0xa0, 0xcb, 0xc3, 0xd6, 0xcb, 0xc3, 0xff, 0x5a, 0x47, 0xff, 0x29, 0xa9, 0xff, 0x31, 0xe9, 0xff, 0xb3, 0x45, 0xff, 0xda, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xaa, 0x08, 0xff, 0x52, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x2a, 0xff, 0x4a, 0x28, 0xff, 0x72, 0x86, 0xff, 0x82, 0xc4, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x72, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xc4, 0xff, 0x72, 0x86, 0xff, 0x4a, 0x28, 0xff, 0x3a, 0x2a, 0xff, 0x52, 0x29, 0xff, 0xa2, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb1, 0xc8, 0xff, 0xa3, 0x45, 0xff, 0xab, 0x65, 0xff, 0x31, 0xe9, 0xff, 0x29, 0xa9, 0xff, 0x5a, 0x47, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xc3, 0xd6, 0xbb, 0x83, 0xa0, + 0xbb, 0x83, 0xa0, 0xcb, 0xc3, 0xd6, 0xcb, 0xc3, 0xff, 0x5a, 0x47, 0xff, 0x29, 0xa9, 0xff, 0x31, 0xe9, 0xff, 0xab, 0x65, 0xff, 0xb3, 0x06, 0xff, 0xd9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb9, 0xe8, 0xff, 0x5a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x3a, 0x0a, 0xff, 0x42, 0x29, 0xff, 0x5a, 0x67, 0xff, 0x72, 0x86, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x82, 0xa4, 0xff, 0x72, 0x86, 0xff, 0x5a, 0x67, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x0a, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x6a, 0x28, 0xff, 0xd9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe8, 0xff, 0x41, 0xc9, 0xff, 0xa3, 0x45, 0xff, 0xab, 0x65, 0xff, 0x31, 0xe9, 0xff, 0x29, 0xa9, 0xff, 0x5a, 0x47, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xc3, 0xd6, 0xbb, 0x83, 0xa0, + 0xbb, 0x83, 0xa0, 0xcb, 0xc3, 0xd6, 0xcb, 0xc3, 0xff, 0x5a, 0x47, 0xff, 0x29, 0xa9, 0xff, 0x31, 0xe9, 0xff, 0xab, 0x65, 0xff, 0xa3, 0x45, 0xff, 0x61, 0xc9, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc9, 0xe7, 0xff, 0x7a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x49, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x0a, 0xff, 0x42, 0x29, 0xff, 0x52, 0x48, 0xff, 0x62, 0x67, 0xff, 0x6a, 0x86, 0xff, 0x72, 0x85, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x7a, 0xa5, 0xff, 0x72, 0x85, 0xff, 0x6a, 0x86, 0xff, 0x62, 0x67, 0xff, 0x52, 0x48, 0xff, 0x42, 0x29, 0xff, 0x3a, 0x0a, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x49, 0xff, 0x4a, 0x29, 0xff, 0x8a, 0x08, 0xff, 0xc9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xc7, 0xff, 0x62, 0x08, 0xff, 0x29, 0xc9, 0xff, 0xa3, 0x45, 0xff, 0xab, 0x65, 0xff, 0x31, 0xe9, 0xff, 0x29, 0xa9, 0xff, 0x5a, 0x47, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xc3, 0xd6, 0xbb, 0x83, 0xa0, + 0xbb, 0x83, 0xa0, 0xcb, 0xc3, 0xd6, 0xcb, 0xc3, 0xff, 0x5a, 0x47, 0xff, 0x29, 0xa9, 0xff, 0x31, 0xe9, 0xff, 0xab, 0x65, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x72, 0x08, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xa9, 0xe8, 0xff, 0x5a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x5a, 0x48, 0xff, 0x5a, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x6a, 0x28, 0xff, 0xb1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x6a, 0x28, 0xff, 0x42, 0x09, 0xff, 0x29, 0xc9, 0xff, 0xa3, 0x45, 0xff, 0xab, 0x65, 0xff, 0x31, 0xe9, 0xff, 0x29, 0xa9, 0xff, 0x5a, 0x47, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xc3, 0xd6, 0xbb, 0x83, 0xa0, + 0xbb, 0x83, 0xa0, 0xcb, 0xc3, 0xd6, 0xcb, 0xc3, 0xff, 0x5a, 0x47, 0xff, 0x29, 0xa9, 0xff, 0x31, 0xe9, 0xff, 0xab, 0x65, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x42, 0x09, 0xff, 0x7a, 0x08, 0xff, 0xd9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe8, 0xff, 0xa2, 0x08, 0xff, 0x62, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x6a, 0x28, 0xff, 0xb1, 0xe8, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd1, 0xe8, 0xff, 0x6a, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x09, 0xff, 0x29, 0xc9, 0xff, 0xa3, 0x45, 0xff, 0xab, 0x65, 0xff, 0x31, 0xe9, 0xff, 0x29, 0xa9, 0xff, 0x5a, 0x47, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xc3, 0xd6, 0xbb, 0x83, 0xa0, + 0xbb, 0x83, 0xa0, 0xcb, 0xc3, 0xd6, 0xcb, 0xc3, 0xff, 0x5a, 0x47, 0xff, 0x21, 0xa9, 0xff, 0x31, 0xc9, 0xff, 0xab, 0x65, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xc9, 0xff, 0x42, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x6a, 0x28, 0xff, 0xc1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xc7, 0xff, 0xe1, 0xe7, 0xff, 0xb2, 0x08, 0xff, 0x82, 0x28, 0xff, 0x5a, 0x29, 0xff, 0x52, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x52, 0x29, 0xff, 0x62, 0x28, 0xff, 0x8a, 0x08, 0xff, 0xb9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xb9, 0xe8, 0xff, 0x5a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x09, 0xff, 0x29, 0xc9, 0xff, 0xa3, 0x45, 0xff, 0xab, 0x65, 0xff, 0x31, 0xc9, 0xff, 0x21, 0xa9, 0xff, 0x5a, 0x47, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xc3, 0xd6, 0xbb, 0x83, 0xa0, + 0xbb, 0x83, 0xa0, 0xcb, 0xc3, 0xd6, 0xcb, 0xc3, 0xff, 0x42, 0x08, 0xff, 0x01, 0x4a, 0xff, 0x11, 0x6a, 0xff, 0xa3, 0x45, 0xff, 0x93, 0x25, 0xff, 0x19, 0x8a, 0xff, 0x42, 0x28, 0xff, 0x4a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x5a, 0x28, 0xff, 0xaa, 0x08, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xc1, 0xe8, 0xff, 0xaa, 0x08, 0xff, 0x9a, 0x08, 0xff, 0x8a, 0x08, 0xff, 0x7a, 0x28, 0xff, 0x7a, 0x28, 0xff, 0x82, 0x28, 0xff, 0x8a, 0x08, 0xff, 0x9a, 0x08, 0xff, 0xb2, 0x08, 0xff, 0xc9, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0x9a, 0x08, 0xff, 0x52, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x28, 0xff, 0x42, 0x28, 0xff, 0x19, 0x8a, 0xff, 0x93, 0x25, 0xff, 0xa3, 0x45, 0xff, 0x11, 0x6a, 0xff, 0x01, 0x4a, 0xff, 0x42, 0x08, 0xff, 0xcb, 0xc3, 0xff, 0xcb, 0xc3, 0xd6, 0xbb, 0x83, 0xa0, + 0xbb, 0x83, 0xa0, 0xc3, 0xa3, 0xd6, 0xc3, 0xa3, 0xff, 0x93, 0x06, 0xff, 0x7a, 0xc6, 0xff, 0x7a, 0xe6, 0xff, 0xcb, 0xc4, 0xff, 0xa3, 0x65, 0xff, 0x21, 0xaa, 0xff, 0x31, 0xe9, 0xff, 0x4a, 0x48, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x7a, 0x08, 0xff, 0xc1, 0xe8, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xb9, 0xe8, 0xff, 0x6a, 0x28, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x29, 0xff, 0x4a, 0x48, 0xff, 0x31, 0xe9, 0xff, 0x21, 0xaa, 0xff, 0xa3, 0x65, 0xff, 0xcb, 0xc4, 0xff, 0x7a, 0xe6, 0xff, 0x7a, 0xc6, 0xff, 0x93, 0x06, 0xff, 0xc3, 0xa3, 0xff, 0xc3, 0xa3, 0xd6, 0xbb, 0x83, 0xa0, + 0xbb, 0x83, 0xa0, 0xb3, 0x63, 0xd6, 0xbb, 0x84, 0xff, 0xf4, 0x62, 0xff, 0xfc, 0xc2, 0xff, 0xfc, 0xa2, 0xff, 0xf4, 0x63, 0xff, 0xec, 0x43, 0xff, 0xab, 0x65, 0xff, 0x29, 0xca, 0xff, 0x19, 0xaa, 0xff, 0x31, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x31, 0xe9, 0xff, 0x31, 0xe9, 0xff, 0x39, 0xe9, 0xff, 0x81, 0xe9, 0xff, 0xc1, 0xe8, 0xff, 0xd9, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xb9, 0xe8, 0xff, 0x79, 0xe9, 0xff, 0x31, 0xea, 0xff, 0x31, 0xea, 0xff, 0x31, 0xe9, 0xff, 0x31, 0xe9, 0xff, 0x29, 0xc9, 0xff, 0x31, 0xc9, 0xff, 0x19, 0xaa, 0xff, 0x29, 0xc9, 0xff, 0xab, 0x65, 0xff, 0xec, 0x43, 0xff, 0xf4, 0x63, 0xff, 0xfc, 0xa2, 0xff, 0xfc, 0xc2, 0xff, 0xf4, 0x62, 0xff, 0xbb, 0x84, 0xff, 0xb3, 0x63, 0xd6, 0xbb, 0x83, 0xa0, + 0xbb, 0x83, 0xa0, 0xbb, 0xa3, 0xd6, 0xbb, 0xa4, 0xff, 0xa3, 0x45, 0xff, 0x9b, 0x25, 0xff, 0x9b, 0x25, 0xff, 0x9b, 0x45, 0xff, 0xdc, 0x03, 0xff, 0xf4, 0x62, 0xff, 0x9b, 0x45, 0xff, 0x7a, 0xe6, 0xff, 0x93, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x93, 0x06, 0xff, 0xb2, 0xa7, 0xff, 0xca, 0x27, 0xff, 0xda, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xda, 0x07, 0xff, 0xca, 0x47, 0xff, 0xaa, 0xa6, 0xff, 0x93, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x8b, 0x06, 0xff, 0x93, 0x06, 0xff, 0x82, 0xe6, 0xff, 0x9b, 0x45, 0xff, 0xf4, 0x62, 0xff, 0xdc, 0x03, 0xff, 0x9b, 0x45, 0xff, 0x9b, 0x25, 0xff, 0x9b, 0x25, 0xff, 0xa3, 0x45, 0xff, 0xc3, 0xa4, 0xff, 0xbb, 0xa3, 0xd6, 0xbb, 0x83, 0xa0, + 0xbb, 0x83, 0xa1, 0xcb, 0xc3, 0xd8, 0xcb, 0xa3, 0xff, 0x42, 0x08, 0xfa, 0x11, 0x69, 0xfe, 0x29, 0xa9, 0xff, 0x19, 0x89, 0xff, 0x8b, 0x06, 0xff, 0xf4, 0x63, 0xff, 0xd4, 0x03, 0xff, 0xb3, 0x84, 0xff, 0xb3, 0x84, 0xff, 0xbb, 0xa4, 0xff, 0xbb, 0x84, 0xff, 0xbb, 0xa4, 0xff, 0xbb, 0x84, 0xff, 0xbb, 0xa4, 0xff, 0xbb, 0xa4, 0xff, 0xbb, 0xa4, 0xff, 0xbb, 0xa4, 0xff, 0xc3, 0x25, 0xff, 0xca, 0xc6, 0xff, 0xda, 0x66, 0xff, 0xda, 0x47, 0xff, 0xe2, 0x07, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe1, 0xe7, 0xff, 0xe2, 0x07, 0xff, 0xe2, 0x07, 0xff, 0xda, 0x47, 0xff, 0xd2, 0x66, 0xff, 0xca, 0xe6, 0xff, 0xc3, 0x45, 0xff, 0xbb, 0xa4, 0xff, 0xbb, 0xa4, 0xff, 0xbb, 0xa4, 0xff, 0xbb, 0xa4, 0xff, 0xbb, 0xa4, 0xff, 0xbb, 0x84, 0xff, 0xbb, 0xa4, 0xff, 0xbb, 0x84, 0xff, 0xbb, 0xa4, 0xff, 0xb3, 0x84, 0xff, 0xb3, 0x84, 0xff, 0xd4, 0x03, 0xff, 0xf4, 0x63, 0xff, 0x8b, 0x06, 0xff, 0x19, 0x89, 0xff, 0x29, 0xa9, 0xff, 0x11, 0x69, 0xfe, 0x42, 0x08, 0xfa, 0xcb, 0xc3, 0xff, 0xcb, 0xc3, 0xd8, 0xbb, 0x83, 0xa1, + 0xbb, 0x63, 0xa8, 0xc3, 0xa3, 0xde, 0xd3, 0xe3, 0xff, 0x5a, 0x47, 0xed, 0x11, 0x6a, 0xfa, 0x39, 0xe8, 0xff, 0x21, 0x89, 0xff, 0x7a, 0xc6, 0xff, 0xfc, 0xa2, 0xff, 0xa3, 0x45, 0xff, 0x29, 0xa9, 0xff, 0x31, 0xc9, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x42, 0x09, 0xff, 0x42, 0x09, 0xff, 0x5a, 0x09, 0xff, 0x71, 0xe8, 0xff, 0x99, 0xe8, 0xff, 0xa9, 0xe8, 0xff, 0xc1, 0xe8, 0xff, 0xc9, 0xe8, 0xff, 0xd1, 0xe7, 0xff, 0xd9, 0xe7, 0xff, 0xd1, 0xe7, 0xff, 0xc9, 0xe8, 0xff, 0xb9, 0xe8, 0xff, 0xa9, 0xe8, 0xff, 0x91, 0xe8, 0xff, 0x71, 0xe8, 0xff, 0x52, 0x09, 0xff, 0x42, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x3a, 0x09, 0xff, 0x31, 0xc9, 0xff, 0x29, 0xa9, 0xff, 0xa3, 0x45, 0xff, 0xfc, 0x82, 0xff, 0x7a, 0xc6, 0xff, 0x21, 0x89, 0xff, 0x39, 0xe8, 0xff, 0x11, 0x6a, 0xfa, 0x5a, 0x47, 0xed, 0xd3, 0xe3, 0xff, 0xc3, 0xa3, 0xde, 0xbb, 0x63, 0xa8, + 0xbb, 0x83, 0x9a, 0xbb, 0x83, 0xd3, 0xd3, 0xe3, 0xff, 0xab, 0x64, 0xf3, 0x29, 0xa9, 0xf2, 0x19, 0x89, 0xfc, 0x11, 0x6a, 0xff, 0x7a, 0xe6, 0xff, 0xfc, 0xc2, 0xff, 0x9b, 0x45, 0xff, 0x11, 0x6a, 0xff, 0x21, 0x8a, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x29, 0xc9, 0xff, 0x21, 0x8a, 0xff, 0x11, 0x6a, 0xff, 0x9b, 0x45, 0xff, 0xfc, 0xc2, 0xff, 0x7a, 0xe6, 0xff, 0x11, 0x6a, 0xff, 0x19, 0x89, 0xfb, 0x29, 0xa9, 0xf2, 0xab, 0x64, 0xf3, 0xd3, 0xe3, 0xff, 0xbb, 0x83, 0xd3, 0xbb, 0x83, 0x9a, + 0xbb, 0x83, 0x30, 0xbb, 0x83, 0x87, 0xbb, 0xa3, 0xff, 0xdb, 0xe3, 0xff, 0xab, 0x44, 0xf3, 0x52, 0x47, 0xed, 0x29, 0xa9, 0xfa, 0x82, 0xe6, 0xff, 0xfc, 0x62, 0xff, 0xa3, 0x45, 0xff, 0x41, 0xe8, 0xff, 0x4a, 0x08, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x52, 0x48, 0xff, 0x4a, 0x08, 0xff, 0x41, 0xe8, 0xff, 0xa3, 0x45, 0xff, 0xfc, 0x62, 0xff, 0x82, 0xe6, 0xff, 0x29, 0xa9, 0xfa, 0x52, 0x47, 0xec, 0xab, 0x44, 0xf4, 0xd3, 0xe3, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0x87, 0xbb, 0x83, 0x30, + 0x00, 0x00, 0x00, 0xbb, 0x44, 0x11, 0xb3, 0x83, 0xc3, 0xc3, 0xa3, 0xff, 0xd3, 0xe3, 0xff, 0xcb, 0xa3, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x63, 0xff, 0xb3, 0x63, 0xff, 0xb3, 0x63, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xbb, 0x83, 0xff, 0xb3, 0x63, 0xff, 0xb3, 0x63, 0xff, 0xbb, 0x63, 0xff, 0xbb, 0x83, 0xff, 0xcb, 0xa3, 0xff, 0xd3, 0xe3, 0xff, 0xc3, 0xa3, 0xff, 0xbb, 0x83, 0xc3, 0xbb, 0x44, 0x11, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb3, 0xa3, 0x14, 0xbb, 0x84, 0x8e, 0xbb, 0xa4, 0xde, 0xcb, 0xa3, 0xe9, 0xcb, 0xc3, 0xe1, 0xc3, 0xa3, 0xdf, 0xb3, 0x63, 0xdf, 0xbb, 0x83, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xcb, 0xa3, 0xdf, 0xbb, 0x83, 0xdf, 0xb3, 0x63, 0xdf, 0xc3, 0xa3, 0xdf, 0xcb, 0xc3, 0xe1, 0xcb, 0xa3, 0xe9, 0xbb, 0x84, 0xde, 0xbb, 0x84, 0x8e, 0xb3, 0xa3, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#endif +#if LV_COLOR_DEPTH == 32 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x8e, 0xe9, 0x46, 0x22, 0x8b, 0xe6, 0xb5, 0x22, 0x8c, 0xe6, 0xed, 0x22, 0x8d, 0xe6, 0xf5, 0x22, 0x8c, 0xe6, 0xf0, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xef, 0x22, 0x8c, 0xe6, 0xf1, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xeb, 0x22, 0x8c, 0xe6, 0xb4, 0x22, 0x8b, 0xe5, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x8b, 0xe5, 0x75, 0x22, 0x8c, 0xe6, 0xff, 0x22, 0x8c, 0xe6, 0xff, 0x22, 0x8c, 0xe6, 0xf9, 0x22, 0x8c, 0xe6, 0xf1, 0x22, 0x8c, 0xe6, 0xf3, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf4, 0x22, 0x8c, 0xe6, 0xf3, 0x22, 0x8c, 0xe6, 0xf1, 0x22, 0x8c, 0xe6, 0xf9, 0x22, 0x8c, 0xe6, 0xff, 0x22, 0x8c, 0xe5, 0xff, 0x23, 0x8c, 0xe5, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x8b, 0xe5, 0x58, 0x22, 0x8d, 0xe7, 0xff, 0x21, 0x8c, 0xe6, 0xff, 0x22, 0x8c, 0xe7, 0x9f, 0x25, 0x8c, 0xe6, 0x3e, 0x23, 0x8c, 0xe6, 0x33, 0x23, 0x8d, 0xe5, 0x3a, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x23, 0x8a, 0xe5, 0x3b, 0x24, 0x8b, 0xe4, 0x39, 0x23, 0x8c, 0xe6, 0x33, 0x21, 0x8c, 0xe6, 0x3e, 0x22, 0x8c, 0xe5, 0x9f, 0x21, 0x8c, 0xe5, 0xff, 0x22, 0x8c, 0xe6, 0xff, 0x20, 0x8d, 0xe8, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x94, 0xe4, 0x13, 0x23, 0x8c, 0xe6, 0xbe, 0x22, 0x8b, 0xe3, 0xff, 0x21, 0x8c, 0xe7, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x8d, 0xe8, 0x92, 0x21, 0x8a, 0xe4, 0xff, 0x23, 0x8b, 0xe6, 0xbf, 0x28, 0x94, 0xe4, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x88, 0xe4, 0x2f, 0x22, 0x8d, 0xe6, 0xff, 0x23, 0x8d, 0xe8, 0xef, 0x24, 0x92, 0xf5, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x92, 0xf5, 0x31, 0x22, 0x8d, 0xe8, 0xef, 0x22, 0x8c, 0xe6, 0xff, 0x21, 0x88, 0xe4, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x55, 0xaa, 0x03, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0xff, 0x02, 0x00, 0x80, 0xff, 0x02, 0x00, 0x80, 0xff, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x20, 0x80, 0xd1, 0x38, 0x23, 0x90, 0xec, 0xff, 0x24, 0x93, 0xf1, 0xd9, 0x23, 0x7b, 0xd3, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x23, 0x7b, 0xd3, 0x1d, 0x24, 0x93, 0xf2, 0xd9, 0x23, 0x90, 0xec, 0xff, 0x1f, 0x82, 0xce, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x02, 0x00, 0x80, 0xff, 0x02, 0x00, 0x80, 0xff, 0x02, 0x00, 0x80, 0xff, 0x02, 0x00, 0x80, 0x80, 0x02, 0x00, 0x55, 0xaa, 0x03, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x75, 0xc5, 0x46, 0x1d, 0x76, 0xc1, 0x93, 0x1c, 0x78, 0xc5, 0xa3, 0x1c, 0x7b, 0xcb, 0x9c, 0x1e, 0x7b, 0xc8, 0x9a, 0x1e, 0x77, 0xc3, 0x9a, 0x1e, 0x79, 0xc8, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1d, 0x79, 0xc8, 0x8f, 0x1c, 0x7c, 0xcc, 0xaf, 0x1f, 0x85, 0xdb, 0xff, 0x1f, 0x84, 0xd8, 0xf2, 0x1c, 0x76, 0xc3, 0x9c, 0x1b, 0x77, 0xc6, 0x8e, 0x1c, 0x7b, 0xcc, 0x9b, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9a, 0x1c, 0x7b, 0xcc, 0x9b, 0x1b, 0x77, 0xc6, 0x8e, 0x1c, 0x76, 0xc3, 0x9c, 0x1f, 0x84, 0xd8, 0xf2, 0x1f, 0x84, 0xdb, 0xff, 0x1c, 0x7c, 0xcc, 0xaf, 0x1d, 0x79, 0xc8, 0x8f, 0x1c, 0x7b, 0xcc, 0x9a, 0x1e, 0x79, 0xc8, 0x9a, 0x1e, 0x77, 0xc3, 0x9a, 0x1e, 0x7b, 0xc8, 0x9a, 0x1c, 0x7b, 0xcb, 0x9c, 0x1d, 0x78, 0xc6, 0xa1, 0x1d, 0x76, 0xc1, 0x93, 0x1d, 0x75, 0xc5, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x77, 0xc2, 0x76, 0x1e, 0x75, 0xc0, 0xff, 0x1a, 0x80, 0xd4, 0xff, 0x17, 0x8b, 0xeb, 0xff, 0x15, 0x8f, 0xf5, 0xff, 0x1a, 0x84, 0xdd, 0xff, 0x22, 0x77, 0xbf, 0xff, 0x1c, 0x81, 0xd5, 0xff, 0x16, 0x8c, 0xf1, 0xff, 0x16, 0x8d, 0xef, 0xff, 0x16, 0x8a, 0xe9, 0xff, 0x16, 0x87, 0xe6, 0xff, 0x16, 0x87, 0xe6, 0xff, 0x16, 0x89, 0xeb, 0xff, 0x16, 0x8c, 0xed, 0xff, 0x16, 0x8b, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8a, 0xec, 0xff, 0x16, 0x8b, 0xec, 0xff, 0x16, 0x8c, 0xee, 0xff, 0x16, 0x89, 0xeb, 0xff, 0x16, 0x87, 0xe6, 0xff, 0x16, 0x87, 0xe6, 0xff, 0x16, 0x8a, 0xe9, 0xff, 0x16, 0x8d, 0xef, 0xff, 0x16, 0x8c, 0xf1, 0xff, 0x1c, 0x81, 0xd5, 0xff, 0x22, 0x77, 0xbf, 0xff, 0x1a, 0x84, 0xdd, 0xff, 0x15, 0x8f, 0xf5, 0xff, 0x17, 0x8b, 0xeb, 0xff, 0x1a, 0x80, 0xd4, 0xff, 0x1e, 0x75, 0xc0, 0xff, 0x1c, 0x77, 0xc2, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1a, 0x80, 0xcc, 0x0a, 0x1e, 0x7a, 0xc2, 0x5c, 0x1f, 0x76, 0xbf, 0xff, 0x1b, 0x84, 0xde, 0xff, 0x1a, 0x88, 0xe6, 0xf9, 0x29, 0x67, 0x9e, 0xef, 0x34, 0x53, 0x6e, 0xfa, 0x27, 0x6b, 0xa4, 0xff, 0x16, 0x88, 0xe8, 0xff, 0x22, 0x72, 0xb4, 0xff, 0x31, 0x58, 0x7b, 0xff, 0x30, 0x5b, 0x80, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5d, 0x85, 0xff, 0x2e, 0x5d, 0x84, 0xff, 0x2e, 0x5d, 0x85, 0xff, 0x2e, 0x5d, 0x84, 0xff, 0x2e, 0x5d, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x2e, 0x5d, 0x85, 0xff, 0x2e, 0x5d, 0x84, 0xff, 0x2e, 0x5d, 0x85, 0xff, 0x2e, 0x5d, 0x84, 0xff, 0x2e, 0x5d, 0x85, 0xff, 0x2e, 0x5e, 0x85, 0xff, 0x30, 0x5b, 0x80, 0xff, 0x31, 0x58, 0x7b, 0xff, 0x22, 0x72, 0xb4, 0xff, 0x16, 0x88, 0xe8, 0xff, 0x27, 0x6b, 0xa4, 0xff, 0x34, 0x53, 0x6d, 0xfa, 0x29, 0x67, 0x9d, 0xef, 0x1a, 0x88, 0xe6, 0xf9, 0x1b, 0x83, 0xde, 0xff, 0x1f, 0x75, 0xc1, 0xff, 0x1f, 0x7b, 0xc4, 0x5b, 0x1c, 0x71, 0xc6, 0x09, + 0x1e, 0x76, 0xc4, 0x79, 0x1f, 0x76, 0xc5, 0xbc, 0x1a, 0x83, 0xdd, 0xff, 0x1c, 0x84, 0xdc, 0xfa, 0x38, 0x4b, 0x5b, 0xf1, 0x46, 0x2a, 0x13, 0xf4, 0x4d, 0x1f, 0x00, 0xfd, 0x30, 0x53, 0x71, 0xff, 0x0c, 0x95, 0xff, 0xff, 0x28, 0x63, 0x95, 0xff, 0x4a, 0x29, 0x0d, 0xff, 0x48, 0x2d, 0x19, 0xff, 0x45, 0x32, 0x26, 0xff, 0x45, 0x33, 0x26, 0xff, 0x45, 0x33, 0x26, 0xff, 0x45, 0x32, 0x25, 0xff, 0x45, 0x32, 0x26, 0xff, 0x45, 0x32, 0x25, 0xff, 0x46, 0x34, 0x25, 0xff, 0x46, 0x34, 0x25, 0xff, 0x46, 0x34, 0x27, 0xff, 0x46, 0x34, 0x2b, 0xff, 0x44, 0x35, 0x43, 0xff, 0x42, 0x36, 0x67, 0xff, 0x3f, 0x37, 0x8c, 0xff, 0x3e, 0x38, 0xa2, 0xff, 0x3d, 0x39, 0xb9, 0xff, 0x3c, 0x39, 0xc6, 0xff, 0x3b, 0x39, 0xcf, 0xff, 0x3b, 0x3a, 0xd3, 0xff, 0x3b, 0x39, 0xcf, 0xff, 0x3c, 0x39, 0xc6, 0xff, 0x3d, 0x39, 0xb6, 0xff, 0x3f, 0x39, 0xa1, 0xff, 0x40, 0x38, 0x88, 0xff, 0x43, 0x36, 0x5f, 0xff, 0x45, 0x35, 0x3d, 0xff, 0x46, 0x34, 0x29, 0xff, 0x46, 0x34, 0x26, 0xff, 0x46, 0x34, 0x25, 0xff, 0x46, 0x34, 0x25, 0xff, 0x46, 0x34, 0x25, 0xff, 0x45, 0x32, 0x25, 0xff, 0x45, 0x32, 0x26, 0xff, 0x45, 0x32, 0x25, 0xff, 0x45, 0x33, 0x26, 0xff, 0x45, 0x33, 0x26, 0xff, 0x45, 0x32, 0x26, 0xff, 0x48, 0x2d, 0x19, 0xff, 0x4a, 0x29, 0x0d, 0xff, 0x28, 0x63, 0x95, 0xff, 0x0c, 0x95, 0xff, 0xff, 0x30, 0x53, 0x71, 0xff, 0x4d, 0x1f, 0x00, 0xfd, 0x46, 0x2a, 0x13, 0xf4, 0x38, 0x4b, 0x5d, 0xf1, 0x1c, 0x84, 0xdc, 0xf9, 0x1a, 0x84, 0xdd, 0xff, 0x1f, 0x77, 0xc5, 0xbc, 0x1e, 0x79, 0xc6, 0x78, + 0x1d, 0x78, 0xc5, 0xa8, 0x1c, 0x7c, 0xd0, 0xde, 0x18, 0x8c, 0xee, 0xff, 0x30, 0x5b, 0x7f, 0xed, 0x48, 0x25, 0x07, 0xf8, 0x42, 0x34, 0x29, 0xff, 0x46, 0x30, 0x1f, 0xff, 0x30, 0x58, 0x7c, 0xff, 0x0e, 0x92, 0xff, 0xff, 0x28, 0x65, 0x98, 0xff, 0x4a, 0x2d, 0x16, 0xff, 0x48, 0x31, 0x21, 0xff, 0x45, 0x36, 0x2d, 0xff, 0x45, 0x37, 0x2c, 0xff, 0x45, 0x37, 0x2c, 0xff, 0x45, 0x37, 0x2c, 0xff, 0x45, 0x37, 0x2c, 0xff, 0x46, 0x37, 0x2c, 0xff, 0x46, 0x37, 0x2d, 0xff, 0x45, 0x37, 0x35, 0xff, 0x42, 0x38, 0x68, 0xff, 0x3f, 0x39, 0x97, 0xff, 0x3c, 0x39, 0xc1, 0xff, 0x3b, 0x3a, 0xcd, 0xff, 0x3b, 0x3a, 0xd7, 0xff, 0x3a, 0x3a, 0xdc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xdc, 0xff, 0x3b, 0x3a, 0xd5, 0xff, 0x3c, 0x3a, 0xcb, 0xff, 0x3d, 0x39, 0xbc, 0xff, 0x3f, 0x39, 0x90, 0xff, 0x43, 0x38, 0x5f, 0xff, 0x46, 0x37, 0x2f, 0xff, 0x46, 0x37, 0x2d, 0xff, 0x46, 0x37, 0x2d, 0xff, 0x46, 0x37, 0x2c, 0xff, 0x45, 0x37, 0x2c, 0xff, 0x45, 0x37, 0x2c, 0xff, 0x45, 0x37, 0x2c, 0xff, 0x45, 0x37, 0x2c, 0xff, 0x45, 0x36, 0x2d, 0xff, 0x48, 0x31, 0x21, 0xff, 0x4a, 0x2d, 0x16, 0xff, 0x28, 0x65, 0x98, 0xff, 0x0e, 0x92, 0xff, 0xff, 0x30, 0x58, 0x7c, 0xff, 0x46, 0x30, 0x1f, 0xff, 0x42, 0x34, 0x2a, 0xff, 0x48, 0x25, 0x06, 0xf9, 0x30, 0x5a, 0x80, 0xee, 0x18, 0x8c, 0xee, 0xff, 0x1d, 0x7e, 0xcf, 0xde, 0x1d, 0x79, 0xc5, 0xa8, + 0x1e, 0x7a, 0xc7, 0xa3, 0x1b, 0x82, 0xda, 0xda, 0x1c, 0x85, 0xe0, 0xff, 0x3c, 0x42, 0x47, 0xf5, 0x49, 0x27, 0x0b, 0xfd, 0x42, 0x37, 0x2e, 0xff, 0x49, 0x2d, 0x16, 0xff, 0x30, 0x5a, 0x7d, 0xff, 0x11, 0x8d, 0xf6, 0xff, 0x20, 0x73, 0xbc, 0xff, 0x33, 0x56, 0x74, 0xff, 0x31, 0x57, 0x79, 0xff, 0x30, 0x5a, 0x80, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x2f, 0x5b, 0x7f, 0xff, 0x2f, 0x5b, 0x7f, 0xff, 0x2f, 0x5b, 0x7f, 0xff, 0x32, 0x57, 0x8d, 0xff, 0x35, 0x4b, 0xb1, 0xff, 0x38, 0x3f, 0xd3, 0xff, 0x39, 0x3c, 0xdc, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe0, 0xff, 0x39, 0x3c, 0xdb, 0xff, 0x38, 0x40, 0xd0, 0xff, 0x35, 0x4d, 0xac, 0xff, 0x31, 0x59, 0x87, 0xff, 0x30, 0x5b, 0x80, 0xff, 0x2f, 0x5b, 0x7f, 0xff, 0x2f, 0x5b, 0x7f, 0xff, 0x2f, 0x5b, 0x7f, 0xff, 0x30, 0x5b, 0x7f, 0xff, 0x30, 0x5a, 0x80, 0xff, 0x31, 0x57, 0x79, 0xff, 0x32, 0x55, 0x74, 0xff, 0x20, 0x74, 0xbc, 0xff, 0x11, 0x8d, 0xf6, 0xff, 0x30, 0x59, 0x7d, 0xff, 0x49, 0x2d, 0x16, 0xff, 0x42, 0x37, 0x2e, 0xff, 0x49, 0x27, 0x0b, 0xfd, 0x3c, 0x41, 0x47, 0xf5, 0x1c, 0x86, 0xe0, 0xff, 0x1a, 0x82, 0xda, 0xda, 0x1e, 0x7a, 0xc7, 0xa3, + 0x1e, 0x7b, 0xc9, 0xa0, 0x1b, 0x81, 0xd5, 0xd6, 0x1c, 0x81, 0xd6, 0xff, 0x31, 0x57, 0x77, 0xff, 0x39, 0x48, 0x55, 0xff, 0x37, 0x4c, 0x5f, 0xff, 0x37, 0x4f, 0x63, 0xff, 0x22, 0x74, 0xba, 0xff, 0x14, 0x8a, 0xef, 0xff, 0x21, 0x73, 0xba, 0xff, 0x27, 0x68, 0xa1, 0xff, 0x24, 0x6d, 0xaa, 0xff, 0x25, 0x6d, 0xab, 0xff, 0x25, 0x6d, 0xaa, 0xff, 0x25, 0x6d, 0xab, 0xff, 0x28, 0x66, 0xb3, 0xff, 0x31, 0x50, 0xca, 0xff, 0x38, 0x3f, 0xdd, 0xff, 0x3a, 0x3b, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3b, 0xe0, 0xff, 0x37, 0x40, 0xdb, 0xff, 0x30, 0x54, 0xc6, 0xff, 0x27, 0x69, 0xaf, 0xff, 0x25, 0x6d, 0xab, 0xff, 0x25, 0x6d, 0xab, 0xff, 0x25, 0x6d, 0xaa, 0xff, 0x25, 0x6d, 0xab, 0xff, 0x24, 0x6d, 0xaa, 0xff, 0x27, 0x68, 0xa1, 0xff, 0x21, 0x73, 0xb9, 0xff, 0x14, 0x8b, 0xef, 0xff, 0x22, 0x74, 0xba, 0xff, 0x37, 0x4e, 0x63, 0xff, 0x37, 0x4c, 0x5f, 0xff, 0x39, 0x48, 0x56, 0xff, 0x31, 0x57, 0x77, 0xff, 0x1c, 0x81, 0xd6, 0xff, 0x1b, 0x81, 0xd5, 0xd6, 0x1e, 0x7b, 0xc9, 0xa0, + 0x1e, 0x7b, 0xc7, 0xa0, 0x1f, 0x7a, 0xc6, 0xd6, 0x1f, 0x7b, 0xca, 0xff, 0x17, 0x89, 0xe8, 0xff, 0x14, 0x8e, 0xf7, 0xff, 0x14, 0x8c, 0xf1, 0xff, 0x18, 0x84, 0xdf, 0xff, 0x15, 0x8b, 0xed, 0xff, 0x1d, 0x7d, 0xcf, 0xff, 0x41, 0x41, 0x42, 0xff, 0x49, 0x34, 0x22, 0xff, 0x44, 0x3c, 0x37, 0xff, 0x44, 0x3c, 0x37, 0xff, 0x44, 0x3c, 0x3b, 0xff, 0x40, 0x3c, 0x7c, 0xff, 0x3b, 0x3a, 0xd1, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3a, 0x3a, 0xdf, 0xff, 0x3a, 0x3a, 0xde, 0xff, 0x3a, 0x3a, 0xdd, 0xff, 0x3a, 0x3a, 0xdd, 0xff, 0x3a, 0x3a, 0xdd, 0xff, 0x3a, 0x3a, 0xde, 0xff, 0x3a, 0x3a, 0xdf, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3c, 0x3a, 0xca, 0xff, 0x42, 0x3d, 0x71, 0xff, 0x44, 0x3d, 0x3b, 0xff, 0x44, 0x3c, 0x37, 0xff, 0x44, 0x3c, 0x37, 0xff, 0x44, 0x3c, 0x38, 0xff, 0x49, 0x33, 0x22, 0xff, 0x41, 0x41, 0x41, 0xff, 0x1b, 0x7d, 0xcf, 0xff, 0x14, 0x8a, 0xee, 0xff, 0x18, 0x84, 0xdf, 0xff, 0x14, 0x8c, 0xf1, 0xff, 0x14, 0x8e, 0xf7, 0xff, 0x17, 0x89, 0xe8, 0xff, 0x1f, 0x7b, 0xca, 0xff, 0x1f, 0x7a, 0xc6, 0xd6, 0x1e, 0x7b, 0xc7, 0xa0, + 0x1e, 0x7b, 0xc7, 0xa0, 0x1e, 0x7b, 0xcb, 0xd6, 0x1f, 0x7d, 0xce, 0xff, 0x21, 0x74, 0xbc, 0xff, 0x23, 0x71, 0xb3, 0xff, 0x23, 0x72, 0xb5, 0xff, 0x1a, 0x80, 0xd5, 0xff, 0x22, 0x74, 0xb7, 0xff, 0x42, 0x3f, 0x3d, 0xff, 0x48, 0x34, 0x24, 0xff, 0x43, 0x40, 0x3f, 0xff, 0x43, 0x40, 0x40, 0xff, 0x41, 0x3f, 0x5a, 0xff, 0x3d, 0x3c, 0xb4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3b, 0x3a, 0xda, 0xff, 0x3b, 0x3b, 0xd1, 0xff, 0x3d, 0x3c, 0xaf, 0xff, 0x3f, 0x3d, 0x97, 0xff, 0x41, 0x3e, 0x7e, 0xff, 0x43, 0x3f, 0x6e, 0xff, 0x43, 0x3f, 0x65, 0xff, 0x43, 0x3f, 0x60, 0xff, 0x43, 0x3f, 0x66, 0xff, 0x42, 0x3e, 0x71, 0xff, 0x41, 0x3e, 0x81, 0xff, 0x3f, 0x3d, 0x98, 0xff, 0x3d, 0x3c, 0xb5, 0xff, 0x3b, 0x3a, 0xd5, 0xff, 0x3a, 0x3a, 0xdb, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3e, 0x3d, 0xa7, 0xff, 0x42, 0x3f, 0x53, 0xff, 0x43, 0x40, 0x3e, 0xff, 0x43, 0x40, 0x3f, 0xff, 0x43, 0x40, 0x3f, 0xff, 0x49, 0x34, 0x25, 0xff, 0x41, 0x3f, 0x3e, 0xff, 0x21, 0x74, 0xba, 0xff, 0x1a, 0x80, 0xd6, 0xff, 0x23, 0x72, 0xb5, 0xff, 0x23, 0x71, 0xb3, 0xff, 0x21, 0x74, 0xbc, 0xff, 0x1f, 0x7d, 0xce, 0xff, 0x1e, 0x7b, 0xcb, 0xd6, 0x1e, 0x7b, 0xc7, 0xa0, + 0x1e, 0x7b, 0xc7, 0xa0, 0x1a, 0x81, 0xd9, 0xd6, 0x1b, 0x82, 0xd9, 0xff, 0x3b, 0x44, 0x4b, 0xff, 0x4c, 0x28, 0x0b, 0xff, 0x4a, 0x2f, 0x1b, 0xff, 0x26, 0x6b, 0xa5, 0xff, 0x2c, 0x61, 0x8f, 0xff, 0x4f, 0x2b, 0x0e, 0xff, 0x43, 0x42, 0x40, 0xff, 0x40, 0x46, 0x4d, 0xff, 0x40, 0x41, 0x72, 0xff, 0x3a, 0x3a, 0xd0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xdd, 0xff, 0x3b, 0x3b, 0xd1, 0xff, 0x3e, 0x3e, 0xa2, 0xff, 0x40, 0x41, 0x73, 0xff, 0x43, 0x44, 0x4d, 0xff, 0x43, 0x44, 0x46, 0xff, 0x43, 0x44, 0x46, 0xff, 0x43, 0x44, 0x46, 0xff, 0x43, 0x44, 0x46, 0xff, 0x43, 0x44, 0x46, 0xff, 0x43, 0x44, 0x46, 0xff, 0x43, 0x44, 0x46, 0xff, 0x43, 0x44, 0x46, 0xff, 0x43, 0x44, 0x46, 0xff, 0x43, 0x44, 0x46, 0xff, 0x43, 0x44, 0x46, 0xff, 0x43, 0x44, 0x51, 0xff, 0x41, 0x41, 0x7a, 0xff, 0x3e, 0x3e, 0xa8, 0xff, 0x3b, 0x3b, 0xd3, 0xff, 0x39, 0x39, 0xde, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe2, 0xff, 0x3b, 0x3b, 0xc6, 0xff, 0x41, 0x42, 0x66, 0xff, 0x42, 0x44, 0x44, 0xff, 0x40, 0x45, 0x4b, 0xff, 0x43, 0x41, 0x40, 0xff, 0x4f, 0x2b, 0x0e, 0xff, 0x2b, 0x61, 0x8f, 0xff, 0x25, 0x6b, 0xa5, 0xff, 0x4a, 0x2f, 0x1a, 0xff, 0x4c, 0x28, 0x0b, 0xff, 0x3b, 0x44, 0x4b, 0xff, 0x1b, 0x82, 0xd9, 0xff, 0x1a, 0x81, 0xd9, 0xd6, 0x1e, 0x7b, 0xc7, 0xa0, + 0x1d, 0x7b, 0xc7, 0xa0, 0x1a, 0x81, 0xd8, 0xd6, 0x1b, 0x82, 0xd7, 0xff, 0x3c, 0x46, 0x50, 0xff, 0x4b, 0x2c, 0x12, 0xff, 0x48, 0x33, 0x22, 0xff, 0x26, 0x6a, 0xa4, 0xff, 0x29, 0x67, 0x9c, 0xff, 0x4a, 0x36, 0x26, 0xff, 0x44, 0x40, 0x41, 0xff, 0x3e, 0x3f, 0x86, 0xff, 0x3b, 0x3b, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xde, 0xff, 0x3b, 0x3b, 0xcb, 0xff, 0x3f, 0x3f, 0x8f, 0xff, 0x43, 0x43, 0x53, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x46, 0xff, 0x44, 0x44, 0x46, 0xff, 0x44, 0x44, 0x46, 0xff, 0x44, 0x44, 0x46, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x43, 0x43, 0x5a, 0xff, 0x40, 0x40, 0x95, 0xff, 0x3c, 0x3c, 0xcc, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3c, 0xd7, 0xff, 0x40, 0x40, 0x74, 0xff, 0x42, 0x44, 0x46, 0xff, 0x43, 0x40, 0x3f, 0xff, 0x4a, 0x36, 0x27, 0xff, 0x29, 0x67, 0x9b, 0xff, 0x26, 0x6a, 0xa4, 0xff, 0x48, 0x33, 0x21, 0xff, 0x4b, 0x2c, 0x13, 0xff, 0x3c, 0x46, 0x50, 0xff, 0x1c, 0x82, 0xd7, 0xff, 0x1a, 0x81, 0xd8, 0xd6, 0x1e, 0x7b, 0xc7, 0xa0, + 0x1e, 0x79, 0xc7, 0xa0, 0x1a, 0x80, 0xd6, 0xd6, 0x1c, 0x80, 0xd6, 0xff, 0x39, 0x4b, 0x5d, 0xff, 0x46, 0x34, 0x25, 0xff, 0x44, 0x3b, 0x34, 0xff, 0x25, 0x6d, 0xaa, 0xff, 0x28, 0x69, 0x9e, 0xff, 0x4a, 0x37, 0x29, 0xff, 0x3f, 0x3d, 0x82, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xd0, 0xff, 0x3f, 0x3f, 0x94, 0xff, 0x43, 0x43, 0x51, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x46, 0xff, 0x43, 0x44, 0x46, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x45, 0x43, 0x43, 0xff, 0x47, 0x42, 0x41, 0xff, 0x47, 0x42, 0x40, 0xff, 0x47, 0x42, 0x40, 0xff, 0x47, 0x42, 0x40, 0xff, 0x47, 0x42, 0x40, 0xff, 0x47, 0x42, 0x41, 0xff, 0x45, 0x43, 0x43, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x43, 0x44, 0x46, 0xff, 0x44, 0x44, 0x46, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x43, 0x43, 0x55, 0xff, 0x3d, 0x3d, 0xa3, 0xff, 0x3b, 0x3b, 0xd6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xde, 0xff, 0x3f, 0x40, 0x76, 0xff, 0x45, 0x41, 0x3e, 0xff, 0x4a, 0x37, 0x28, 0xff, 0x28, 0x69, 0x9e, 0xff, 0x25, 0x6d, 0xaa, 0xff, 0x44, 0x3b, 0x34, 0xff, 0x46, 0x34, 0x25, 0xff, 0x39, 0x4b, 0x5d, 0xff, 0x1c, 0x80, 0xd6, 0xff, 0x1a, 0x80, 0xd6, 0xd6, 0x1d, 0x79, 0xc7, 0xa0, + 0x1e, 0x79, 0xc7, 0xa0, 0x1a, 0x80, 0xd6, 0xd6, 0x1c, 0x80, 0xd6, 0xff, 0x39, 0x4a, 0x5b, 0xff, 0x47, 0x33, 0x22, 0xff, 0x45, 0x3a, 0x30, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x28, 0x68, 0x9e, 0xff, 0x44, 0x39, 0x75, 0xff, 0x39, 0x39, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3d, 0x3d, 0xb1, 0xff, 0x42, 0x42, 0x6a, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x43, 0x44, 0x46, 0xff, 0x44, 0x43, 0x45, 0xff, 0x46, 0x42, 0x41, 0xff, 0x49, 0x42, 0x3d, 0xff, 0x4a, 0x41, 0x3a, 0xff, 0x4a, 0x42, 0x3b, 0xff, 0x47, 0x43, 0x40, 0xff, 0x45, 0x43, 0x42, 0xff, 0x45, 0x43, 0x43, 0xff, 0x45, 0x43, 0x43, 0xff, 0x45, 0x43, 0x42, 0xff, 0x47, 0x43, 0x40, 0xff, 0x4a, 0x42, 0x3b, 0xff, 0x4a, 0x41, 0x3a, 0xff, 0x49, 0x42, 0x3d, 0xff, 0x46, 0x42, 0x41, 0xff, 0x44, 0x43, 0x45, 0xff, 0x43, 0x44, 0x46, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x42, 0x42, 0x77, 0xff, 0x3c, 0x3c, 0xc1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xdf, 0xff, 0x42, 0x3f, 0x70, 0xff, 0x4a, 0x37, 0x28, 0xff, 0x28, 0x68, 0x9e, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x45, 0x3a, 0x30, 0xff, 0x47, 0x33, 0x22, 0xff, 0x39, 0x4a, 0x5b, 0xff, 0x1b, 0x80, 0xd6, 0xff, 0x1a, 0x80, 0xd6, 0xd6, 0x1d, 0x79, 0xc7, 0xa0, + 0x1d, 0x79, 0xc7, 0xa0, 0x1a, 0x80, 0xd6, 0xd6, 0x1b, 0x80, 0xd6, 0xff, 0x39, 0x4a, 0x5b, 0xff, 0x47, 0x33, 0x22, 0xff, 0x45, 0x3a, 0x31, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x2c, 0x59, 0xb2, 0xff, 0x3b, 0x3b, 0xdf, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xe0, 0xff, 0x41, 0x41, 0x71, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x45, 0x44, 0x45, 0xff, 0x43, 0x45, 0x47, 0xff, 0x43, 0x44, 0x46, 0xff, 0x47, 0x42, 0x40, 0xff, 0x4b, 0x41, 0x3b, 0xff, 0x49, 0x42, 0x3d, 0xff, 0x41, 0x46, 0x49, 0xff, 0x39, 0x4a, 0x57, 0xff, 0x33, 0x4d, 0x62, 0xff, 0x2f, 0x4f, 0x6a, 0xff, 0x2d, 0x4f, 0x6e, 0xff, 0x2b, 0x51, 0x70, 0xff, 0x2b, 0x51, 0x70, 0xff, 0x2d, 0x4f, 0x6e, 0xff, 0x2f, 0x4f, 0x6a, 0xff, 0x33, 0x4d, 0x62, 0xff, 0x39, 0x4a, 0x57, 0xff, 0x41, 0x46, 0x49, 0xff, 0x49, 0x42, 0x3d, 0xff, 0x4b, 0x41, 0x3b, 0xff, 0x47, 0x42, 0x40, 0xff, 0x43, 0x44, 0x46, 0xff, 0x43, 0x45, 0x47, 0xff, 0x45, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x43, 0x43, 0x59, 0xff, 0x3d, 0x3d, 0xae, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3c, 0x3b, 0xd7, 0xff, 0x47, 0x38, 0x4c, 0xff, 0x28, 0x68, 0x9e, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x45, 0x3a, 0x31, 0xff, 0x47, 0x33, 0x22, 0xff, 0x39, 0x4a, 0x5b, 0xff, 0x1b, 0x80, 0xd6, 0xff, 0x1a, 0x80, 0xd6, 0xd6, 0x1d, 0x79, 0xc7, 0xa0, + 0x1d, 0x79, 0xc6, 0xa0, 0x1a, 0x80, 0xd5, 0xd6, 0x1b, 0x80, 0xd5, 0xff, 0x38, 0x4a, 0x5b, 0xff, 0x48, 0x33, 0x23, 0xff, 0x46, 0x3a, 0x31, 0xff, 0x29, 0x66, 0xb2, 0xff, 0x36, 0x3e, 0xdb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3c, 0xc4, 0xff, 0x42, 0x42, 0x72, 0xff, 0x45, 0x45, 0x46, 0xff, 0x44, 0x45, 0x49, 0xff, 0x47, 0x44, 0x43, 0xff, 0x4c, 0x42, 0x3a, 0xff, 0x47, 0x44, 0x42, 0xff, 0x3a, 0x4a, 0x57, 0xff, 0x2d, 0x50, 0x6c, 0xff, 0x26, 0x52, 0x78, 0xff, 0x22, 0x54, 0x7e, 0xff, 0x22, 0x55, 0x81, 0xff, 0x22, 0x54, 0x7f, 0xff, 0x24, 0x55, 0x7c, 0xff, 0x23, 0x54, 0x7d, 0xff, 0x23, 0x54, 0x7d, 0xff, 0x24, 0x55, 0x7c, 0xff, 0x22, 0x54, 0x7f, 0xff, 0x22, 0x55, 0x81, 0xff, 0x22, 0x54, 0x7e, 0xff, 0x26, 0x52, 0x78, 0xff, 0x2d, 0x50, 0x6c, 0xff, 0x3a, 0x4a, 0x57, 0xff, 0x47, 0x44, 0x42, 0xff, 0x4c, 0x42, 0x3a, 0xff, 0x47, 0x44, 0x43, 0xff, 0x44, 0x45, 0x49, 0xff, 0x45, 0x45, 0x46, 0xff, 0x45, 0x45, 0x46, 0xff, 0x44, 0x44, 0x50, 0xff, 0x3e, 0x3e, 0xa4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x39, 0xbe, 0xff, 0x2a, 0x65, 0xa3, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x46, 0x3a, 0x31, 0xff, 0x48, 0x33, 0x23, 0xff, 0x38, 0x4a, 0x5b, 0xff, 0x1b, 0x7f, 0xd5, 0xff, 0x1a, 0x80, 0xd5, 0xd6, 0x1d, 0x79, 0xc6, 0xa0, + 0x1d, 0x78, 0xc6, 0xa0, 0x1a, 0x80, 0xd5, 0xd6, 0x1b, 0x7f, 0xd5, 0xff, 0x38, 0x4b, 0x5b, 0xff, 0x48, 0x33, 0x23, 0xff, 0x46, 0x3a, 0x32, 0xff, 0x36, 0x49, 0xd3, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xce, 0xff, 0x42, 0x42, 0x74, 0xff, 0x4a, 0x43, 0x3f, 0xff, 0x49, 0x43, 0x40, 0xff, 0x3a, 0x49, 0x57, 0xff, 0x28, 0x52, 0x73, 0xff, 0x22, 0x54, 0x7f, 0xff, 0x22, 0x55, 0x7f, 0xff, 0x24, 0x54, 0x7b, 0xff, 0x26, 0x53, 0x77, 0xff, 0x27, 0x52, 0x75, 0xff, 0x27, 0x52, 0x76, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x27, 0x52, 0x76, 0xff, 0x27, 0x52, 0x75, 0xff, 0x26, 0x53, 0x77, 0xff, 0x24, 0x54, 0x7b, 0xff, 0x22, 0x55, 0x7f, 0xff, 0x22, 0x54, 0x7f, 0xff, 0x28, 0x52, 0x73, 0xff, 0x3a, 0x49, 0x57, 0xff, 0x49, 0x43, 0x40, 0xff, 0x4a, 0x43, 0x3f, 0xff, 0x45, 0x45, 0x46, 0xff, 0x45, 0x45, 0x47, 0xff, 0x45, 0x45, 0x46, 0xff, 0x43, 0x43, 0x50, 0xff, 0x3d, 0x3d, 0xa3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x33, 0x4c, 0xc8, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x46, 0x3a, 0x31, 0xff, 0x48, 0x33, 0x23, 0xff, 0x38, 0x4b, 0x5b, 0xff, 0x1b, 0x7f, 0xd5, 0xff, 0x1a, 0x80, 0xd5, 0xd6, 0x1d, 0x78, 0xc6, 0xa0, + 0x1d, 0x78, 0xc6, 0xa0, 0x1a, 0x80, 0xd4, 0xd6, 0x1b, 0x7f, 0xd4, 0xff, 0x38, 0x4b, 0x5b, 0xff, 0x48, 0x33, 0x24, 0xff, 0x41, 0x3a, 0x7b, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xdc, 0xff, 0x3b, 0x3b, 0xcc, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3b, 0xcd, 0xff, 0x40, 0x43, 0x77, 0xff, 0x2e, 0x51, 0x6e, 0xff, 0x22, 0x55, 0x7f, 0xff, 0x22, 0x54, 0x7d, 0xff, 0x26, 0x52, 0x78, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x26, 0x52, 0x78, 0xff, 0x22, 0x54, 0x7d, 0xff, 0x22, 0x55, 0x7f, 0xff, 0x2e, 0x51, 0x6e, 0xff, 0x42, 0x47, 0x4c, 0xff, 0x4c, 0x43, 0x3d, 0xff, 0x47, 0x45, 0x44, 0xff, 0x44, 0x45, 0x47, 0xff, 0x45, 0x45, 0x46, 0xff, 0x43, 0x43, 0x50, 0xff, 0x3c, 0x3c, 0xb4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x2b, 0x5e, 0xba, 0xff, 0x46, 0x3a, 0x31, 0xff, 0x48, 0x33, 0x24, 0xff, 0x38, 0x4b, 0x5b, 0xff, 0x1b, 0x80, 0xd4, 0xff, 0x1a, 0x7e, 0xd4, 0xd6, 0x1d, 0x78, 0xc6, 0xa0, + 0x1d, 0x78, 0xc6, 0xa0, 0x1a, 0x7e, 0xd4, 0xd6, 0x1b, 0x80, 0xd4, 0xff, 0x38, 0x4b, 0x5b, 0xff, 0x47, 0x34, 0x32, 0xff, 0x3a, 0x39, 0xd3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3c, 0xb8, 0xff, 0x42, 0x42, 0x63, 0xff, 0x3e, 0x3e, 0xa3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3d, 0xd6, 0xff, 0x28, 0x4d, 0x99, 0xff, 0x26, 0x52, 0x78, 0xff, 0x29, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x75, 0xff, 0x26, 0x52, 0x78, 0xff, 0x21, 0x54, 0x7e, 0xff, 0x25, 0x53, 0x79, 0xff, 0x3b, 0x4a, 0x57, 0xff, 0x4b, 0x42, 0x3c, 0xff, 0x48, 0x44, 0x42, 0xff, 0x44, 0x45, 0x48, 0xff, 0x44, 0x44, 0x46, 0xff, 0x43, 0x43, 0x59, 0xff, 0x3c, 0x3c, 0xcc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x44, 0xd7, 0xff, 0x46, 0x3a, 0x37, 0xff, 0x48, 0x33, 0x24, 0xff, 0x38, 0x4b, 0x5b, 0xff, 0x1b, 0x80, 0xd4, 0xff, 0x1a, 0x7e, 0xd4, 0xd6, 0x1d, 0x78, 0xc6, 0xa0, + 0x1d, 0x78, 0xc4, 0xa0, 0x1a, 0x7e, 0xd3, 0xd6, 0x1b, 0x80, 0xd3, 0xff, 0x38, 0x4b, 0x5b, 0xff, 0x40, 0x37, 0x92, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3c, 0xd1, 0xff, 0x42, 0x44, 0x67, 0xff, 0x44, 0x44, 0x45, 0xff, 0x43, 0x43, 0x52, 0xff, 0x3c, 0x3d, 0xb2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3d, 0xd6, 0xff, 0x2d, 0x4b, 0x93, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x75, 0xff, 0x25, 0x53, 0x7a, 0xff, 0x21, 0x54, 0x7f, 0xff, 0x38, 0x4a, 0x5c, 0xff, 0x4e, 0x42, 0x39, 0xff, 0x48, 0x44, 0x42, 0xff, 0x43, 0x45, 0x48, 0xff, 0x44, 0x44, 0x45, 0xff, 0x41, 0x41, 0x72, 0xff, 0x3a, 0x3a, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x40, 0x3a, 0x84, 0xff, 0x48, 0x33, 0x24, 0xff, 0x38, 0x4b, 0x5b, 0xff, 0x1b, 0x80, 0xd4, 0xff, 0x1a, 0x7e, 0xd4, 0xd6, 0x1d, 0x78, 0xc6, 0xa0, + 0x1d, 0x78, 0xc4, 0xa0, 0x1a, 0x7e, 0xd3, 0xd6, 0x1b, 0x7e, 0xd3, 0xff, 0x38, 0x48, 0x69, 0xff, 0x3b, 0x39, 0xd2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xde, 0xff, 0x3f, 0x3d, 0x97, 0xff, 0x43, 0x45, 0x48, 0xff, 0x44, 0x44, 0x45, 0xff, 0x43, 0x44, 0x46, 0xff, 0x45, 0x43, 0x50, 0xff, 0x41, 0x3c, 0xab, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3c, 0xd7, 0xff, 0x2d, 0x4b, 0x93, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x28, 0x52, 0x76, 0xff, 0x27, 0x52, 0x76, 0xff, 0x27, 0x52, 0x76, 0xff, 0x28, 0x52, 0x76, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x73, 0xff, 0x25, 0x54, 0x79, 0xff, 0x1f, 0x56, 0x83, 0xff, 0x38, 0x4b, 0x5b, 0xff, 0x4e, 0x41, 0x38, 0xff, 0x46, 0x44, 0x43, 0xff, 0x43, 0x44, 0x46, 0xff, 0x44, 0x44, 0x45, 0xff, 0x3d, 0x3e, 0xad, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3a, 0xc1, 0xff, 0x47, 0x34, 0x30, 0xff, 0x38, 0x4a, 0x5a, 0xff, 0x1b, 0x7e, 0xd3, 0xff, 0x1a, 0x7e, 0xd3, 0xd6, 0x1d, 0x78, 0xc4, 0xa0, + 0x1d, 0x78, 0xc4, 0xa0, 0x1a, 0x7e, 0xd3, 0xd6, 0x1b, 0x7e, 0xd3, 0xff, 0x3b, 0x43, 0xa2, 0xff, 0x39, 0x39, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x39, 0xc2, 0xff, 0x44, 0x41, 0x48, 0xff, 0x43, 0x45, 0x48, 0xff, 0x44, 0x44, 0x45, 0xff, 0x45, 0x44, 0x45, 0xff, 0x4d, 0x42, 0x3a, 0xff, 0x3f, 0x47, 0x5b, 0xff, 0x32, 0x43, 0xc5, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3d, 0xd6, 0xff, 0x2d, 0x4c, 0x92, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x73, 0xff, 0x28, 0x52, 0x75, 0xff, 0x26, 0x54, 0x79, 0xff, 0x24, 0x54, 0x7d, 0xff, 0x22, 0x55, 0x7f, 0xff, 0x22, 0x55, 0x7f, 0xff, 0x22, 0x55, 0x7f, 0xff, 0x22, 0x55, 0x7f, 0xff, 0x24, 0x54, 0x7d, 0xff, 0x26, 0x54, 0x79, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x73, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x2a, 0x52, 0x72, 0xff, 0x24, 0x54, 0x7c, 0xff, 0x20, 0x56, 0x83, 0xff, 0x3f, 0x48, 0x51, 0xff, 0x4d, 0x42, 0x3a, 0xff, 0x45, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x42, 0x44, 0x5a, 0xff, 0x3a, 0x3a, 0xdc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xda, 0xff, 0x42, 0x36, 0x72, 0xff, 0x39, 0x4a, 0x5a, 0xff, 0x1b, 0x7e, 0xd3, 0xff, 0x1a, 0x7e, 0xd3, 0xd6, 0x1d, 0x78, 0xc4, 0xa0, + 0x1d, 0x78, 0xc2, 0xa0, 0x1a, 0x7d, 0xd2, 0xd6, 0x1c, 0x7c, 0xd2, 0xff, 0x3a, 0x3c, 0xcf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3c, 0xdf, 0xff, 0x45, 0x3a, 0x7c, 0xff, 0x45, 0x41, 0x3f, 0xff, 0x43, 0x45, 0x48, 0xff, 0x44, 0x44, 0x45, 0xff, 0x49, 0x42, 0x3e, 0xff, 0x45, 0x45, 0x45, 0xff, 0x26, 0x53, 0x79, 0xff, 0x24, 0x55, 0x86, 0xff, 0x35, 0x41, 0xc2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3d, 0xd6, 0xff, 0x2d, 0x4b, 0x93, 0xff, 0x25, 0x54, 0x7b, 0xff, 0x22, 0x54, 0x7f, 0xff, 0x25, 0x53, 0x7a, 0xff, 0x2d, 0x51, 0x6e, 0xff, 0x33, 0x4e, 0x65, 0xff, 0x36, 0x4d, 0x60, 0xff, 0x36, 0x4d, 0x60, 0xff, 0x32, 0x4d, 0x65, 0xff, 0x2c, 0x50, 0x6e, 0xff, 0x25, 0x54, 0x7a, 0xff, 0x22, 0x54, 0x7f, 0xff, 0x25, 0x54, 0x7b, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x2a, 0x52, 0x73, 0xff, 0x23, 0x56, 0x80, 0xff, 0x26, 0x53, 0x79, 0xff, 0x46, 0x45, 0x46, 0xff, 0x4a, 0x42, 0x3e, 0xff, 0x44, 0x44, 0x45, 0xff, 0x43, 0x45, 0x48, 0xff, 0x3e, 0x3c, 0xa0, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3e, 0x38, 0xaf, 0xff, 0x39, 0x4a, 0x5a, 0xff, 0x1b, 0x7e, 0xd2, 0xff, 0x1a, 0x7d, 0xd2, 0xd6, 0x1d, 0x78, 0xc2, 0xa0, + 0x1d, 0x78, 0xc2, 0xa0, 0x1b, 0x7c, 0xd2, 0xd6, 0x25, 0x68, 0xd8, 0xff, 0x3a, 0x3b, 0xda, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3f, 0xda, 0xff, 0x4a, 0x37, 0x32, 0xff, 0x45, 0x41, 0x3f, 0xff, 0x43, 0x45, 0x48, 0xff, 0x45, 0x43, 0x42, 0xff, 0x49, 0x43, 0x3e, 0xff, 0x34, 0x50, 0x68, 0xff, 0x21, 0x56, 0x83, 0xff, 0x26, 0x50, 0x72, 0xff, 0x26, 0x4e, 0x75, 0xff, 0x34, 0x40, 0xc0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3d, 0xd7, 0xff, 0x2c, 0x4c, 0x96, 0xff, 0x35, 0x4c, 0x61, 0xff, 0x44, 0x47, 0x4c, 0xff, 0x46, 0x42, 0x41, 0xff, 0x45, 0x3f, 0x3a, 0xff, 0x49, 0x40, 0x3a, 0xff, 0x4a, 0x40, 0x3a, 0xff, 0x4a, 0x43, 0x3f, 0xff, 0x48, 0x45, 0x43, 0xff, 0x42, 0x46, 0x4b, 0xff, 0x35, 0x4c, 0x60, 0xff, 0x26, 0x53, 0x78, 0xff, 0x22, 0x54, 0x7e, 0xff, 0x24, 0x50, 0x74, 0xff, 0x25, 0x4f, 0x72, 0xff, 0x25, 0x4f, 0x73, 0xff, 0x25, 0x4f, 0x73, 0xff, 0x25, 0x4f, 0x73, 0xff, 0x25, 0x50, 0x73, 0xff, 0x27, 0x50, 0x73, 0xff, 0x2c, 0x53, 0x74, 0xff, 0x23, 0x58, 0x82, 0xff, 0x31, 0x4e, 0x65, 0xff, 0x48, 0x42, 0x3d, 0xff, 0x45, 0x43, 0x42, 0xff, 0x43, 0x45, 0x48, 0xff, 0x44, 0x40, 0x55, 0xff, 0x3a, 0x3a, 0xde, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x39, 0xcc, 0xff, 0x39, 0x46, 0x7b, 0xff, 0x1b, 0x7d, 0xd2, 0xff, 0x1a, 0x7d, 0xd2, 0xd6, 0x1d, 0x78, 0xc2, 0xa0, + 0x1d, 0x76, 0xc2, 0xa0, 0x1b, 0x7b, 0xd3, 0xd7, 0x2e, 0x55, 0xdc, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe1, 0xff, 0x34, 0x4d, 0xc6, 0xff, 0x4b, 0x37, 0x29, 0xff, 0x45, 0x41, 0x3f, 0xff, 0x43, 0x45, 0x48, 0xff, 0x4a, 0x43, 0x3f, 0xff, 0x44, 0x4a, 0x50, 0xff, 0x13, 0x46, 0x70, 0xff, 0x00, 0x30, 0x5d, 0xff, 0x01, 0x31, 0x58, 0xff, 0x04, 0x35, 0x5d, 0xff, 0x05, 0x34, 0x60, 0xff, 0x29, 0x38, 0xba, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xd2, 0xff, 0x4a, 0x43, 0x6f, 0xff, 0x49, 0x40, 0x3c, 0xff, 0x27, 0x23, 0x20, 0xff, 0x22, 0x20, 0x1f, 0xff, 0x25, 0x24, 0x24, 0xff, 0x20, 0x1f, 0x1f, 0xff, 0x34, 0x32, 0x31, 0xff, 0x4e, 0x49, 0x48, 0xff, 0x4c, 0x44, 0x3f, 0xff, 0x4a, 0x41, 0x3b, 0xff, 0x46, 0x49, 0x4c, 0xff, 0x21, 0x42, 0x5e, 0xff, 0x00, 0x32, 0x5c, 0xff, 0x02, 0x34, 0x5e, 0xff, 0x03, 0x35, 0x5d, 0xff, 0x03, 0x35, 0x5d, 0xff, 0x03, 0x35, 0x5d, 0xff, 0x04, 0x34, 0x5d, 0xff, 0x00, 0x2f, 0x59, 0xff, 0x03, 0x32, 0x5a, 0xff, 0x1e, 0x4c, 0x73, 0xff, 0x2a, 0x59, 0x7e, 0xff, 0x3f, 0x48, 0x4e, 0xff, 0x48, 0x42, 0x3d, 0xff, 0x43, 0x45, 0x48, 0xff, 0x45, 0x41, 0x40, 0xff, 0x3e, 0x38, 0xac, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xdf, 0xff, 0x3a, 0x43, 0x9c, 0xff, 0x1c, 0x7c, 0xd3, 0xff, 0x1a, 0x7d, 0xd2, 0xd6, 0x1d, 0x76, 0xc2, 0xa0, + 0x1d, 0x76, 0xc2, 0xa0, 0x1f, 0x73, 0xd4, 0xdb, 0x34, 0x47, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3b, 0xe0, 0xff, 0x2e, 0x5d, 0xb0, 0xff, 0x4b, 0x37, 0x29, 0xff, 0x45, 0x41, 0x3f, 0xff, 0x45, 0x46, 0x48, 0xff, 0x4b, 0x45, 0x42, 0xff, 0x17, 0x38, 0x53, 0xff, 0x09, 0x3d, 0x6a, 0xff, 0x55, 0x74, 0x8f, 0xff, 0x79, 0x95, 0xa9, 0xff, 0x7d, 0x98, 0xac, 0xff, 0x7e, 0x97, 0xac, 0xff, 0x7c, 0x95, 0xae, 0xff, 0x48, 0x50, 0xcf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xd0, 0xff, 0x37, 0x38, 0x68, 0xff, 0x75, 0x76, 0x77, 0xff, 0x9b, 0x9b, 0x9b, 0xff, 0x93, 0x92, 0x92, 0xff, 0x90, 0x90, 0x90, 0xff, 0x4f, 0x50, 0x51, 0xff, 0x36, 0x36, 0x37, 0xff, 0x45, 0x46, 0x49, 0xff, 0x47, 0x45, 0x45, 0xff, 0x44, 0x3b, 0x34, 0xff, 0x58, 0x54, 0x51, 0xff, 0x7f, 0x95, 0xa8, 0xff, 0x7d, 0x9a, 0xb1, 0xff, 0x7b, 0x93, 0xa8, 0xff, 0x7b, 0x94, 0xaa, 0xff, 0x7c, 0x96, 0xab, 0xff, 0x7f, 0x97, 0xad, 0xff, 0x75, 0x8f, 0xa7, 0xff, 0x40, 0x66, 0x86, 0xff, 0x02, 0x31, 0x59, 0xff, 0x13, 0x47, 0x72, 0xff, 0x37, 0x51, 0x68, 0xff, 0x48, 0x42, 0x3f, 0xff, 0x43, 0x45, 0x48, 0xff, 0x45, 0x41, 0x40, 0xff, 0x45, 0x38, 0x6c, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x40, 0xb7, 0xff, 0x1f, 0x75, 0xd4, 0xff, 0x1a, 0x7d, 0xd1, 0xd6, 0x1d, 0x76, 0xc2, 0xa0, + 0x1d, 0x76, 0xc2, 0xa0, 0x26, 0x64, 0xd8, 0xe4, 0x36, 0x42, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3f, 0xdd, 0xff, 0x2a, 0x67, 0xa1, 0xff, 0x4b, 0x37, 0x29, 0xff, 0x44, 0x41, 0x3f, 0xff, 0x48, 0x45, 0x44, 0xff, 0x30, 0x38, 0x3f, 0xff, 0x21, 0x4c, 0x70, 0xff, 0xb3, 0xc5, 0xd3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xfa, 0xfe, 0xff, 0x6e, 0x71, 0xea, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x3d, 0xd3, 0xff, 0xbd, 0xbd, 0xec, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb2, 0xb1, 0xb2, 0xff, 0x24, 0x24, 0x25, 0xff, 0x3d, 0x3d, 0x3e, 0xff, 0x47, 0x47, 0x49, 0xff, 0x30, 0x30, 0x32, 0xff, 0x8c, 0x89, 0x89, 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, 0x87, 0x9e, 0xb2, 0xff, 0x06, 0x39, 0x64, 0xff, 0x1d, 0x48, 0x6d, 0xff, 0x43, 0x47, 0x4b, 0xff, 0x45, 0x44, 0x44, 0xff, 0x45, 0x42, 0x3f, 0xff, 0x49, 0x37, 0x3f, 0xff, 0x3a, 0x3b, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3e, 0xc6, 0xff, 0x26, 0x66, 0xd8, 0xff, 0x19, 0x7c, 0xd1, 0xd6, 0x1d, 0x76, 0xc2, 0xa0, + 0x1d, 0x74, 0xc1, 0xa0, 0x2e, 0x56, 0xda, 0xed, 0x38, 0x3e, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x34, 0x49, 0xd2, 0xff, 0x29, 0x68, 0x9e, 0xff, 0x4b, 0x37, 0x29, 0xff, 0x45, 0x42, 0x40, 0xff, 0x45, 0x41, 0x3e, 0xff, 0x24, 0x39, 0x4c, 0xff, 0x95, 0xae, 0xc4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xfc, 0xfd, 0xff, 0xfa, 0xfb, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xfb, 0xfe, 0xff, 0x6c, 0x6b, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x50, 0x50, 0xe5, 0xff, 0xc5, 0xc5, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xe3, 0xe3, 0xff, 0x42, 0x42, 0x43, 0xff, 0x2e, 0x2e, 0x2f, 0xff, 0x47, 0x47, 0x48, 0xff, 0x31, 0x31, 0x32, 0xff, 0x8c, 0x8d, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xfc, 0xfe, 0xff, 0xe7, 0xef, 0xf3, 0xff, 0xe6, 0xeb, 0xee, 0xff, 0xf2, 0xf4, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6d, 0x8a, 0xa1, 0xff, 0x07, 0x3d, 0x69, 0xff, 0x35, 0x47, 0x57, 0xff, 0x48, 0x44, 0x41, 0xff, 0x44, 0x42, 0x40, 0xff, 0x4a, 0x37, 0x2f, 0xff, 0x37, 0x43, 0xd5, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xd2, 0xff, 0x2c, 0x59, 0xda, 0xff, 0x1a, 0x7c, 0xd1, 0xd6, 0x1d, 0x74, 0xc1, 0xa0, + 0x1d, 0x76, 0xc1, 0xa0, 0x32, 0x4d, 0xdd, 0xf2, 0x39, 0x3c, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x30, 0x53, 0xc6, 0xff, 0x29, 0x68, 0x9e, 0xff, 0x4b, 0x38, 0x29, 0xff, 0x46, 0x42, 0x3e, 0xff, 0x3b, 0x3b, 0x3d, 0xff, 0x37, 0x53, 0x6a, 0xff, 0xd6, 0xe2, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xa5, 0xb6, 0xff, 0x3b, 0x61, 0x82, 0xff, 0x3f, 0x64, 0x84, 0xff, 0x60, 0x7f, 0x98, 0xff, 0xe2, 0xe8, 0xec, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7, 0xfe, 0xff, 0x4f, 0x4f, 0xc6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x51, 0x51, 0xe3, 0xff, 0xb6, 0xb6, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xf9, 0xf9, 0xff, 0x6a, 0x6a, 0x6a, 0xff, 0x22, 0x22, 0x23, 0xff, 0x44, 0x44, 0x45, 0xff, 0x32, 0x32, 0x33, 0xff, 0x89, 0x89, 0x89, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7, 0xc3, 0xcd, 0xff, 0x2b, 0x4c, 0x70, 0xff, 0x2d, 0x56, 0x79, 0xff, 0x33, 0x59, 0x7b, 0xff, 0xa5, 0xb4, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaa, 0xba, 0xc8, 0xff, 0x12, 0x45, 0x6f, 0xff, 0x25, 0x45, 0x5f, 0xff, 0x47, 0x45, 0x44, 0xff, 0x45, 0x41, 0x3e, 0xff, 0x4b, 0x38, 0x2e, 0xff, 0x34, 0x4b, 0xc8, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xdb, 0xff, 0x30, 0x4f, 0xdd, 0xff, 0x19, 0x7c, 0xd1, 0xd6, 0x1d, 0x76, 0xc1, 0xa0, + 0x1d, 0x76, 0xc1, 0xa0, 0x34, 0x46, 0xdf, 0xf6, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xdf, 0xff, 0x2d, 0x59, 0xbe, 0xff, 0x29, 0x68, 0x9e, 0xff, 0x4a, 0x38, 0x2a, 0xff, 0x4a, 0x42, 0x3c, 0xff, 0x33, 0x39, 0x3f, 0xff, 0x40, 0x61, 0x7c, 0xff, 0xe2, 0xeb, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe6, 0xed, 0xf1, 0xff, 0x2a, 0x48, 0x6d, 0xff, 0x00, 0x22, 0x4f, 0xff, 0x03, 0x33, 0x5c, 0xff, 0x08, 0x27, 0x51, 0xff, 0xa9, 0xbc, 0xc9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x93, 0x93, 0x9a, 0xff, 0x37, 0x37, 0xab, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x45, 0x45, 0xd8, 0xff, 0xc1, 0xc1, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x96, 0x96, 0x95, 0xff, 0x1f, 0x1f, 0x21, 0xff, 0x3e, 0x3e, 0x40, 0xff, 0x33, 0x33, 0x34, 0xff, 0x89, 0x89, 0x89, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa3, 0xa8, 0xab, 0xff, 0x01, 0x12, 0x39, 0xff, 0x03, 0x30, 0x5e, 0xff, 0x00, 0x17, 0x47, 0xff, 0x44, 0x67, 0x85, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb9, 0xc7, 0xd2, 0xff, 0x18, 0x48, 0x70, 0xff, 0x1d, 0x46, 0x66, 0xff, 0x43, 0x47, 0x4a, 0xff, 0x47, 0x40, 0x3b, 0xff, 0x4a, 0x38, 0x2d, 0xff, 0x31, 0x52, 0xbf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x33, 0x48, 0xde, 0xff, 0x19, 0x7c, 0xd1, 0xd6, 0x1d, 0x76, 0xc1, 0xa0, + 0x1d, 0x74, 0xbf, 0xa0, 0x36, 0x42, 0xe0, 0xf9, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xdf, 0xff, 0x2b, 0x5e, 0xba, 0xff, 0x29, 0x68, 0x9e, 0xff, 0x4a, 0x38, 0x2a, 0xff, 0x4b, 0x41, 0x3a, 0xff, 0x30, 0x3a, 0x44, 0xff, 0x3e, 0x63, 0x82, 0xff, 0xe1, 0xe9, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xe8, 0xec, 0xff, 0x24, 0x4d, 0x71, 0xff, 0x0c, 0x3b, 0x63, 0xff, 0x23, 0x4f, 0x72, 0xff, 0x09, 0x39, 0x62, 0xff, 0x8f, 0xa3, 0xb4, 0xff, 0xff, 0xfa, 0xf6, 0xff, 0xf6, 0xf4, 0xf4, 0xff, 0x81, 0x82, 0x82, 0xff, 0x31, 0x31, 0x3a, 0xff, 0x35, 0x35, 0xa9, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x50, 0x50, 0xe2, 0xff, 0xc5, 0xc5, 0xf6, 0xff, 0xc6, 0xc6, 0xc6, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x35, 0x35, 0x36, 0xff, 0x33, 0x33, 0x34, 0xff, 0x8a, 0x8a, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xab, 0xa5, 0x9e, 0xff, 0x05, 0x12, 0x29, 0xff, 0x01, 0x32, 0x62, 0xff, 0x00, 0x1b, 0x4b, 0xff, 0x50, 0x71, 0x8d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb6, 0xc4, 0xd0, 0xff, 0x16, 0x46, 0x6f, 0xff, 0x1c, 0x46, 0x6b, 0xff, 0x41, 0x48, 0x4f, 0xff, 0x49, 0x3f, 0x39, 0xff, 0x4a, 0x38, 0x2b, 0xff, 0x31, 0x57, 0xb9, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x35, 0x44, 0xdf, 0xff, 0x19, 0x7b, 0xcf, 0xd6, 0x1d, 0x74, 0xbf, 0xa0, + 0x1d, 0x74, 0xbf, 0xa0, 0x37, 0x3f, 0xe1, 0xfb, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xdd, 0xff, 0x2b, 0x62, 0xb6, 0xff, 0x29, 0x68, 0x9e, 0xff, 0x4a, 0x38, 0x2a, 0xff, 0x4b, 0x41, 0x39, 0xff, 0x2e, 0x3c, 0x48, 0xff, 0x3b, 0x63, 0x84, 0xff, 0xe1, 0xe9, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0xea, 0xef, 0xff, 0x2a, 0x53, 0x76, 0xff, 0x0d, 0x3b, 0x63, 0xff, 0x2b, 0x56, 0x79, 0xff, 0x21, 0x52, 0x7a, 0xff, 0x3b, 0x4e, 0x5f, 0xff, 0x59, 0x52, 0x4c, 0xff, 0x52, 0x52, 0x51, 0xff, 0x44, 0x46, 0x47, 0xff, 0x3e, 0x3d, 0x3e, 0xff, 0x2d, 0x2d, 0x3a, 0xff, 0x57, 0x57, 0xc9, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x53, 0x53, 0xe6, 0xff, 0xb2, 0xb2, 0xe4, 0xff, 0x49, 0x49, 0x49, 0xff, 0x28, 0x28, 0x29, 0xff, 0x32, 0x32, 0x33, 0xff, 0x8a, 0x8a, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd2, 0xcb, 0xc8, 0xff, 0x66, 0x73, 0x7d, 0xff, 0x5f, 0x82, 0x9d, 0xff, 0x64, 0x84, 0x9d, 0xff, 0xbf, 0xcc, 0xd5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x98, 0xac, 0xff, 0x0e, 0x3f, 0x68, 0xff, 0x21, 0x4e, 0x72, 0xff, 0x3d, 0x49, 0x52, 0xff, 0x49, 0x3f, 0x38, 0xff, 0x4a, 0x38, 0x2b, 0xff, 0x30, 0x5a, 0xb5, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x41, 0xe0, 0xff, 0x19, 0x7b, 0xcf, 0xd6, 0x1d, 0x74, 0xbf, 0xa0, + 0x1d, 0x74, 0xbf, 0xa0, 0x38, 0x3e, 0xe1, 0xfc, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xdd, 0xff, 0x2a, 0x63, 0xb4, 0xff, 0x29, 0x68, 0x9e, 0xff, 0x4a, 0x38, 0x2a, 0xff, 0x4c, 0x41, 0x39, 0xff, 0x2d, 0x3c, 0x4b, 0xff, 0x3a, 0x63, 0x86, 0xff, 0xe1, 0xe9, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0xea, 0xef, 0xff, 0x2a, 0x53, 0x76, 0xff, 0x0c, 0x3b, 0x62, 0xff, 0x2b, 0x57, 0x7b, 0xff, 0x27, 0x57, 0x7d, 0xff, 0x36, 0x42, 0x4e, 0xff, 0x38, 0x30, 0x2a, 0xff, 0x33, 0x33, 0x34, 0xff, 0x42, 0x42, 0x44, 0xff, 0x3c, 0x3c, 0x3d, 0xff, 0x35, 0x35, 0x36, 0xff, 0xb1, 0xb1, 0xc0, 0xff, 0x79, 0x79, 0xeb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x52, 0x52, 0xe6, 0xff, 0x5e, 0x5e, 0x8f, 0xff, 0x22, 0x22, 0x23, 0xff, 0x30, 0x30, 0x31, 0xff, 0x8a, 0x8a, 0x8a, 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, 0x97, 0xab, 0xbb, 0xff, 0x00, 0x2a, 0x55, 0xff, 0x17, 0x46, 0x6f, 0xff, 0x29, 0x56, 0x7c, 0xff, 0x3b, 0x48, 0x54, 0xff, 0x49, 0x3f, 0x37, 0xff, 0x4a, 0x38, 0x2b, 0xff, 0x2f, 0x5b, 0xb2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3f, 0xe1, 0xff, 0x19, 0x7b, 0xcf, 0xd6, 0x1d, 0x74, 0xbf, 0xa0, + 0x1d, 0x74, 0xbf, 0xa0, 0x37, 0x40, 0xe0, 0xfb, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xde, 0xff, 0x2b, 0x62, 0xb6, 0xff, 0x29, 0x68, 0x9e, 0xff, 0x4a, 0x38, 0x2a, 0xff, 0x4c, 0x40, 0x39, 0xff, 0x2d, 0x3c, 0x4b, 0xff, 0x3a, 0x63, 0x86, 0xff, 0xe1, 0xe9, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0xea, 0xef, 0xff, 0x2a, 0x53, 0x76, 0xff, 0x0c, 0x3b, 0x62, 0xff, 0x2b, 0x57, 0x7b, 0xff, 0x27, 0x55, 0x7d, 0xff, 0x38, 0x42, 0x4d, 0xff, 0x3c, 0x34, 0x2f, 0xff, 0x39, 0x38, 0x39, 0xff, 0x42, 0x42, 0x44, 0xff, 0x38, 0x38, 0x39, 0xff, 0x52, 0x52, 0x54, 0xff, 0xe7, 0xe7, 0xe7, 0xff, 0xee, 0xee, 0xfc, 0xff, 0x6d, 0x6d, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x47, 0x47, 0xdb, 0xff, 0x2c, 0x2c, 0x5d, 0xff, 0x29, 0x29, 0x2a, 0xff, 0x8b, 0x8b, 0x8b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xfd, 0xfc, 0xff, 0xf8, 0xf8, 0xf7, 0xff, 0xf6, 0xf8, 0xfa, 0xff, 0xf6, 0xf8, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc8, 0xd3, 0xdb, 0xff, 0x3d, 0x61, 0x7f, 0xff, 0x12, 0x42, 0x6b, 0xff, 0x24, 0x52, 0x78, 0xff, 0x3c, 0x49, 0x54, 0xff, 0x49, 0x3e, 0x37, 0xff, 0x4a, 0x38, 0x2b, 0xff, 0x30, 0x5a, 0xb5, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x40, 0xe0, 0xff, 0x19, 0x7b, 0xce, 0xd6, 0x1d, 0x74, 0xbf, 0xa0, + 0x1d, 0x74, 0xbf, 0xa0, 0x35, 0x43, 0xdf, 0xf9, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xdf, 0xff, 0x2c, 0x5e, 0xbb, 0xff, 0x29, 0x68, 0x9e, 0xff, 0x4a, 0x38, 0x2a, 0xff, 0x4b, 0x41, 0x39, 0xff, 0x2d, 0x3c, 0x49, 0xff, 0x3a, 0x63, 0x85, 0xff, 0xe1, 0xe9, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0xea, 0xef, 0xff, 0x2a, 0x53, 0x76, 0xff, 0x0c, 0x3b, 0x62, 0xff, 0x2c, 0x57, 0x7b, 0xff, 0x24, 0x54, 0x7d, 0xff, 0x2f, 0x3f, 0x4f, 0xff, 0x42, 0x3a, 0x35, 0xff, 0x3b, 0x39, 0x3a, 0xff, 0x3b, 0x3b, 0x3d, 0xff, 0x31, 0x31, 0x32, 0xff, 0x7b, 0x7b, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0xa5, 0xb5, 0xff, 0x31, 0x31, 0xa6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xcf, 0xff, 0x25, 0x25, 0x54, 0xff, 0x8a, 0x8a, 0x8b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, 0xba, 0xb4, 0xff, 0x37, 0x43, 0x4f, 0xff, 0x32, 0x5d, 0x81, 0xff, 0x28, 0x53, 0x79, 0xff, 0x7d, 0x95, 0xaa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, 0xce, 0xd7, 0xff, 0x1c, 0x4a, 0x71, 0xff, 0x19, 0x47, 0x6f, 0xff, 0x3e, 0x4a, 0x54, 0xff, 0x49, 0x3f, 0x37, 0xff, 0x4a, 0x38, 0x2c, 0xff, 0x30, 0x55, 0xba, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x35, 0x44, 0xdf, 0xff, 0x19, 0x7a, 0xce, 0xd6, 0x1d, 0x74, 0xbf, 0xa0, + 0x1d, 0x74, 0xbf, 0xa0, 0x33, 0x46, 0xde, 0xf6, 0x3a, 0x3b, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xdf, 0xff, 0x2d, 0x59, 0xbf, 0xff, 0x29, 0x68, 0x9e, 0xff, 0x4a, 0x38, 0x2a, 0xff, 0x4b, 0x41, 0x39, 0xff, 0x30, 0x3b, 0x45, 0xff, 0x3d, 0x63, 0x84, 0xff, 0xe1, 0xe9, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xe8, 0xed, 0xff, 0x27, 0x50, 0x73, 0xff, 0x11, 0x3f, 0x65, 0xff, 0x28, 0x53, 0x76, 0xff, 0x10, 0x3f, 0x67, 0xff, 0x83, 0x96, 0xa7, 0xff, 0xec, 0xe5, 0xe1, 0xff, 0xdf, 0xdd, 0xde, 0xff, 0x74, 0x75, 0x76, 0xff, 0x1d, 0x1d, 0x1e, 0xff, 0x9a, 0x9a, 0x9a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0xe5, 0xe5, 0xff, 0xbd, 0xbd, 0xcb, 0xff, 0x68, 0x68, 0xdb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x36, 0xcc, 0xff, 0x73, 0x73, 0xa2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaa, 0xa2, 0x98, 0xff, 0x05, 0x08, 0x1c, 0xff, 0x00, 0x31, 0x60, 0xff, 0x00, 0x1c, 0x4c, 0xff, 0x24, 0x3f, 0x65, 0xff, 0xe2, 0xea, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0xe5, 0xe9, 0xff, 0x32, 0x5c, 0x7f, 0xff, 0x15, 0x43, 0x6b, 0xff, 0x3f, 0x48, 0x50, 0xff, 0x49, 0x3f, 0x38, 0xff, 0x4a, 0x38, 0x2d, 0xff, 0x32, 0x51, 0xc0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x33, 0x49, 0xdd, 0xff, 0x19, 0x7a, 0xcd, 0xd6, 0x1d, 0x74, 0xbe, 0xa0, + 0x1d, 0x74, 0xbe, 0xa0, 0x30, 0x4e, 0xdc, 0xf1, 0x39, 0x3c, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x31, 0x51, 0xc9, 0xff, 0x29, 0x68, 0x9e, 0xff, 0x4a, 0x38, 0x2a, 0xff, 0x4b, 0x42, 0x3b, 0xff, 0x31, 0x39, 0x40, 0xff, 0x42, 0x64, 0x81, 0xff, 0xe5, 0xed, 0xf4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xe9, 0xed, 0xff, 0x22, 0x3b, 0x62, 0xff, 0x00, 0x23, 0x4f, 0xff, 0x07, 0x36, 0x5f, 0xff, 0x05, 0x1d, 0x4b, 0xff, 0xa0, 0xb6, 0xc6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x95, 0x95, 0x95, 0xff, 0x23, 0x23, 0x25, 0xff, 0xbf, 0xbf, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xf1, 0xfd, 0xff, 0x79, 0x79, 0xeb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x42, 0x42, 0xd8, 0xff, 0xc7, 0xc7, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xab, 0xa9, 0xa7, 0xff, 0x05, 0x1a, 0x3a, 0xff, 0x0a, 0x3c, 0x69, 0xff, 0x00, 0x29, 0x55, 0xff, 0x1e, 0x3d, 0x65, 0xff, 0xda, 0xe4, 0xe9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdc, 0xe3, 0xe8, 0xff, 0x33, 0x5d, 0x80, 0xff, 0x18, 0x43, 0x66, 0xff, 0x42, 0x47, 0x4c, 0xff, 0x48, 0x40, 0x3a, 0xff, 0x4a, 0x38, 0x2f, 0xff, 0x34, 0x4a, 0xca, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xda, 0xff, 0x30, 0x50, 0xdb, 0xff, 0x19, 0x7a, 0xcd, 0xd6, 0x1d, 0x74, 0xbe, 0xa0, + 0x1d, 0x74, 0xbe, 0xa0, 0x2b, 0x56, 0xd8, 0xeb, 0x38, 0x3f, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x34, 0x48, 0xd3, 0xff, 0x29, 0x68, 0x9e, 0xff, 0x4a, 0x38, 0x29, 0xff, 0x48, 0x42, 0x3d, 0xff, 0x38, 0x3b, 0x3e, 0xff, 0x3b, 0x59, 0x71, 0xff, 0xdd, 0xe8, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6a, 0x86, 0x9e, 0xff, 0x0b, 0x39, 0x62, 0xff, 0x15, 0x41, 0x67, 0xff, 0x39, 0x59, 0x79, 0xff, 0xcf, 0xda, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7a, 0x7a, 0x7b, 0xff, 0x3f, 0x3f, 0x41, 0xff, 0xea, 0xea, 0xeb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0xf4, 0xf4, 0xff, 0xa6, 0xa6, 0xa6, 0xff, 0x9c, 0x9c, 0x9d, 0xff, 0xa9, 0xa9, 0xaa, 0xff, 0x93, 0x93, 0x9c, 0xff, 0x65, 0x65, 0xdb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x50, 0x50, 0xe5, 0xff, 0xca, 0xca, 0xf7, 0xff, 0xa9, 0xb4, 0xbd, 0xff, 0x14, 0x26, 0x4f, 0xff, 0x0d, 0x39, 0x63, 0xff, 0x07, 0x2f, 0x59, 0xff, 0x59, 0x77, 0x91, 0xff, 0xf8, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd2, 0xdb, 0xe2, 0xff, 0x24, 0x53, 0x79, 0xff, 0x1e, 0x42, 0x60, 0xff, 0x46, 0x46, 0x47, 0xff, 0x46, 0x40, 0x3d, 0xff, 0x4a, 0x38, 0x30, 0xff, 0x37, 0x41, 0xd8, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3c, 0xd1, 0xff, 0x2c, 0x5a, 0xd7, 0xff, 0x19, 0x7a, 0xcc, 0xd6, 0x1d, 0x74, 0xbe, 0xa0, + 0x1d, 0x74, 0xbe, 0xa0, 0x26, 0x64, 0xd4, 0xe3, 0x36, 0x42, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3e, 0xdd, 0xff, 0x2a, 0x65, 0xa2, 0xff, 0x4b, 0x37, 0x29, 0xff, 0x45, 0x42, 0x40, 0xff, 0x43, 0x40, 0x3f, 0xff, 0x25, 0x3d, 0x53, 0xff, 0xa6, 0xbd, 0xd0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xfa, 0xfc, 0xff, 0xdd, 0xe4, 0xea, 0xff, 0xd7, 0xe0, 0xe5, 0xff, 0xee, 0xf3, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xf7, 0xf5, 0xff, 0x42, 0x42, 0x42, 0xff, 0x5e, 0x5e, 0x60, 0xff, 0xfd, 0xfd, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xff, 0x0a, 0x0a, 0x0b, 0xff, 0x12, 0x12, 0x13, 0xff, 0x2a, 0x2a, 0x2b, 0xff, 0x00, 0x00, 0x00, 0xff, 0x58, 0x58, 0x5e, 0xff, 0x75, 0x75, 0xeb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x50, 0x50, 0xe5, 0xff, 0xba, 0xbf, 0xf0, 0xff, 0xc7, 0xd6, 0xe0, 0xff, 0xcb, 0xd5, 0xde, 0xff, 0xcd, 0xd9, 0xe1, 0xff, 0xf1, 0xf4, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa4, 0xb5, 0xc5, 0xff, 0x0e, 0x42, 0x6e, 0xff, 0x2b, 0x43, 0x57, 0xff, 0x48, 0x45, 0x43, 0xff, 0x44, 0x41, 0x40, 0xff, 0x49, 0x38, 0x45, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3e, 0xc4, 0xff, 0x24, 0x66, 0xd4, 0xff, 0x19, 0x7a, 0xcc, 0xd6, 0x1d, 0x74, 0xbe, 0xa0, + 0x1d, 0x73, 0xbe, 0xa0, 0x1d, 0x71, 0xce, 0xda, 0x33, 0x47, 0xdd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3c, 0xe1, 0xff, 0x2e, 0x59, 0xb4, 0xff, 0x4b, 0x37, 0x29, 0xff, 0x44, 0x42, 0x40, 0xff, 0x48, 0x44, 0x42, 0xff, 0x28, 0x34, 0x41, 0xff, 0x38, 0x61, 0x83, 0xff, 0xda, 0xe2, 0xe9, 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, 0x81, 0x8a, 0x93, 0xff, 0x16, 0x12, 0x10, 0xff, 0xb2, 0xb0, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x96, 0x96, 0x95, 0xff, 0x12, 0x12, 0x14, 0xff, 0x39, 0x39, 0x3b, 0xff, 0x42, 0x42, 0x42, 0xff, 0x22, 0x22, 0x23, 0xff, 0x39, 0x39, 0x3a, 0xff, 0xe0, 0xe0, 0xe3, 0xff, 0x75, 0x75, 0xeb, 0xff, 0x3b, 0x3b, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x4f, 0x4f, 0xe5, 0xff, 0xc7, 0xc7, 0xf7, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xda, 0xe1, 0xe6, 0xff, 0x31, 0x5a, 0x7c, 0xff, 0x0e, 0x3f, 0x68, 0xff, 0x3f, 0x47, 0x50, 0xff, 0x47, 0x44, 0x42, 0xff, 0x44, 0x42, 0x41, 0xff, 0x45, 0x39, 0x75, 0xff, 0x39, 0x39, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x40, 0xb3, 0xff, 0x1e, 0x73, 0xcd, 0xff, 0x19, 0x7a, 0xcb, 0xd6, 0x1d, 0x73, 0xbc, 0xa0, + 0x1d, 0x73, 0xbc, 0xa0, 0x1a, 0x77, 0xcc, 0xd7, 0x2c, 0x55, 0xd9, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x33, 0x49, 0xcb, 0xff, 0x4b, 0x37, 0x29, 0xff, 0x45, 0x41, 0x3f, 0xff, 0x45, 0x46, 0x47, 0xff, 0x45, 0x42, 0x42, 0xff, 0x11, 0x37, 0x57, 0xff, 0x2d, 0x5a, 0x80, 0xff, 0x8b, 0xa1, 0xb3, 0xff, 0xa6, 0xb8, 0xc6, 0xff, 0xa4, 0xb5, 0xc5, 0xff, 0xa2, 0xb3, 0xc4, 0xff, 0xa6, 0xb8, 0xc7, 0xff, 0x9e, 0xb2, 0xc0, 0xff, 0x55, 0x79, 0x97, 0xff, 0x01, 0x31, 0x5a, 0xff, 0x2c, 0x39, 0x46, 0xff, 0xa1, 0x97, 0x92, 0xff, 0xc0, 0xbc, 0xba, 0xff, 0xb0, 0xaf, 0xb0, 0xff, 0x58, 0x59, 0x5a, 0xff, 0x35, 0x35, 0x36, 0xff, 0x4a, 0x4b, 0x4c, 0xff, 0x4a, 0x4a, 0x4b, 0xff, 0x42, 0x42, 0x43, 0xff, 0x34, 0x34, 0x35, 0xff, 0x88, 0x88, 0x89, 0xff, 0xb9, 0xb9, 0xbe, 0xff, 0x5f, 0x5f, 0xd6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x45, 0x47, 0xdf, 0xff, 0x84, 0x91, 0xcb, 0xff, 0xa5, 0xb6, 0xc5, 0xff, 0xa7, 0xb9, 0xc7, 0xff, 0x85, 0x9d, 0xb1, 0xff, 0x26, 0x4f, 0x72, 0xff, 0x04, 0x39, 0x66, 0xff, 0x2e, 0x4f, 0x6a, 0xff, 0x48, 0x45, 0x43, 0xff, 0x44, 0x45, 0x46, 0xff, 0x45, 0x41, 0x41, 0xff, 0x3f, 0x3a, 0xb5, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xde, 0xff, 0x3a, 0x43, 0x96, 0xff, 0x1b, 0x78, 0xcc, 0xff, 0x19, 0x7a, 0xcb, 0xd6, 0x1d, 0x73, 0xbc, 0xa0, + 0x1d, 0x73, 0xbc, 0xa0, 0x19, 0x7a, 0xcb, 0xd6, 0x23, 0x68, 0xd1, 0xff, 0x3a, 0x3b, 0xda, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x3e, 0xdc, 0xff, 0x49, 0x37, 0x3a, 0xff, 0x45, 0x41, 0x3f, 0xff, 0x43, 0x45, 0x48, 0xff, 0x4a, 0x44, 0x3f, 0xff, 0x38, 0x48, 0x56, 0xff, 0x0e, 0x42, 0x6e, 0xff, 0x0c, 0x3d, 0x65, 0xff, 0x12, 0x41, 0x67, 0xff, 0x12, 0x40, 0x68, 0xff, 0x12, 0x3f, 0x67, 0xff, 0x11, 0x40, 0x67, 0xff, 0x0f, 0x3e, 0x65, 0xff, 0x0d, 0x3c, 0x62, 0xff, 0x1c, 0x4d, 0x74, 0xff, 0x2c, 0x59, 0x7f, 0xff, 0x2f, 0x3f, 0x4f, 0xff, 0x33, 0x2e, 0x2b, 0xff, 0x33, 0x2d, 0x2a, 0xff, 0x3f, 0x3b, 0x3a, 0xff, 0x4a, 0x49, 0x48, 0xff, 0x45, 0x45, 0x46, 0xff, 0x45, 0x44, 0x45, 0xff, 0x48, 0x47, 0x48, 0xff, 0x45, 0x46, 0x45, 0xff, 0x35, 0x34, 0x33, 0xff, 0x31, 0x2e, 0x2c, 0xff, 0x38, 0x31, 0x31, 0xff, 0x3e, 0x3c, 0xb3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x36, 0x3b, 0xd4, 0xff, 0x1d, 0x3e, 0x8a, 0xff, 0x12, 0x41, 0x67, 0xff, 0x0d, 0x3d, 0x62, 0xff, 0x12, 0x41, 0x67, 0xff, 0x23, 0x54, 0x7c, 0xff, 0x3c, 0x4b, 0x59, 0xff, 0x48, 0x42, 0x3d, 0xff, 0x43, 0x45, 0x48, 0xff, 0x44, 0x40, 0x5c, 0xff, 0x39, 0x39, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x39, 0xc9, 0xff, 0x39, 0x46, 0x74, 0xff, 0x1a, 0x79, 0xcb, 0xff, 0x19, 0x7a, 0xcb, 0xd6, 0x1d, 0x73, 0xbc, 0xa0, + 0x1d, 0x73, 0xbe, 0xa0, 0x19, 0x7a, 0xcb, 0xd6, 0x1a, 0x79, 0xca, 0xff, 0x3a, 0x3d, 0xca, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe1, 0xff, 0x41, 0x38, 0x90, 0xff, 0x45, 0x41, 0x3f, 0xff, 0x43, 0x45, 0x48, 0xff, 0x46, 0x43, 0x41, 0xff, 0x46, 0x45, 0x43, 0xff, 0x2b, 0x52, 0x6f, 0xff, 0x1d, 0x51, 0x7a, 0xff, 0x20, 0x4a, 0x6d, 0xff, 0x20, 0x4b, 0x70, 0xff, 0x20, 0x4b, 0x70, 0xff, 0x1f, 0x4b, 0x6f, 0xff, 0x20, 0x4c, 0x70, 0xff, 0x27, 0x51, 0x73, 0xff, 0x2b, 0x54, 0x76, 0xff, 0x25, 0x53, 0x7a, 0xff, 0x1e, 0x4e, 0x75, 0xff, 0x26, 0x45, 0x60, 0xff, 0x37, 0x3f, 0x48, 0xff, 0x46, 0x43, 0x40, 0xff, 0x4b, 0x44, 0x41, 0xff, 0x49, 0x43, 0x3e, 0xff, 0x4a, 0x43, 0x3e, 0xff, 0x4b, 0x44, 0x3f, 0xff, 0x4b, 0x45, 0x40, 0xff, 0x44, 0x3e, 0x3a, 0xff, 0x3e, 0x3a, 0x39, 0xff, 0x37, 0x40, 0x48, 0xff, 0x2e, 0x4d, 0x69, 0xff, 0x33, 0x41, 0xc2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3c, 0xd5, 0xff, 0x27, 0x46, 0x91, 0xff, 0x24, 0x4d, 0x70, 0xff, 0x23, 0x56, 0x7f, 0xff, 0x2c, 0x51, 0x70, 0xff, 0x45, 0x44, 0x43, 0xff, 0x46, 0x43, 0x41, 0xff, 0x43, 0x45, 0x48, 0xff, 0x3f, 0x3e, 0xa5, 0xff, 0x39, 0x39, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3f, 0x39, 0xab, 0xff, 0x39, 0x49, 0x59, 0xff, 0x1a, 0x79, 0xca, 0xff, 0x19, 0x7a, 0xcb, 0xd6, 0x1d, 0x73, 0xbe, 0xa0, + 0x1d, 0x73, 0xba, 0xa0, 0x19, 0x7a, 0xcb, 0xd6, 0x1a, 0x79, 0xca, 0xff, 0x39, 0x42, 0x97, 0xff, 0x3a, 0x3a, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3a, 0xcf, 0xff, 0x44, 0x40, 0x50, 0xff, 0x43, 0x45, 0x48, 0xff, 0x44, 0x44, 0x44, 0xff, 0x49, 0x42, 0x3c, 0xff, 0x3f, 0x48, 0x50, 0xff, 0x24, 0x56, 0x80, 0xff, 0x26, 0x54, 0x7b, 0xff, 0x2a, 0x51, 0x73, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x76, 0xff, 0x25, 0x54, 0x7e, 0xff, 0x27, 0x54, 0x7b, 0xff, 0x2d, 0x50, 0x6d, 0xff, 0x36, 0x4c, 0x5c, 0xff, 0x3d, 0x48, 0x53, 0xff, 0x40, 0x47, 0x4f, 0xff, 0x40, 0x47, 0x4f, 0xff, 0x3d, 0x48, 0x53, 0xff, 0x37, 0x4c, 0x5d, 0xff, 0x2e, 0x50, 0x6e, 0xff, 0x27, 0x55, 0x7a, 0xff, 0x23, 0x54, 0x7d, 0xff, 0x28, 0x51, 0x79, 0xff, 0x35, 0x41, 0xc0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3d, 0xd5, 0xff, 0x2c, 0x4c, 0x9a, 0xff, 0x22, 0x56, 0x7f, 0xff, 0x3f, 0x48, 0x50, 0xff, 0x49, 0x42, 0x3c, 0xff, 0x44, 0x44, 0x44, 0xff, 0x42, 0x43, 0x62, 0xff, 0x3a, 0x3a, 0xdc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3a, 0xd9, 0xff, 0x44, 0x37, 0x67, 0xff, 0x39, 0x49, 0x59, 0xff, 0x1a, 0x79, 0xca, 0xff, 0x19, 0x7a, 0xcb, 0xd6, 0x1d, 0x73, 0xba, 0xa0, + 0x1b, 0x73, 0xba, 0xa0, 0x1a, 0x78, 0xcb, 0xd6, 0x19, 0x78, 0xca, 0xff, 0x38, 0x48, 0x64, 0xff, 0x3b, 0x3a, 0xcf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xdf, 0xff, 0x3e, 0x3d, 0xa2, 0xff, 0x43, 0x45, 0x48, 0xff, 0x44, 0x44, 0x45, 0xff, 0x46, 0x43, 0x41, 0xff, 0x4c, 0x41, 0x3a, 0xff, 0x35, 0x4d, 0x61, 0xff, 0x1e, 0x57, 0x86, 0xff, 0x27, 0x53, 0x77, 0xff, 0x29, 0x52, 0x73, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x74, 0xff, 0x26, 0x53, 0x78, 0xff, 0x23, 0x54, 0x7e, 0xff, 0x23, 0x54, 0x7d, 0xff, 0x24, 0x54, 0x7c, 0xff, 0x24, 0x54, 0x7b, 0xff, 0x24, 0x54, 0x7b, 0xff, 0x24, 0x54, 0x7c, 0xff, 0x23, 0x54, 0x7d, 0xff, 0x23, 0x54, 0x7e, 0xff, 0x26, 0x53, 0x78, 0xff, 0x29, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x51, 0x7b, 0xff, 0x35, 0x41, 0xc2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x37, 0x3e, 0xd6, 0xff, 0x37, 0x47, 0x87, 0xff, 0x4d, 0x41, 0x3a, 0xff, 0x46, 0x43, 0x41, 0xff, 0x44, 0x44, 0x46, 0xff, 0x3c, 0x3d, 0xb9, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3a, 0xbc, 0xff, 0x49, 0x35, 0x29, 0xff, 0x38, 0x49, 0x59, 0xff, 0x19, 0x78, 0xca, 0xff, 0x19, 0x78, 0xcb, 0xd6, 0x1d, 0x73, 0xba, 0xa0, + 0x1d, 0x73, 0xba, 0xa0, 0x18, 0x78, 0xcb, 0xd6, 0x19, 0x78, 0xca, 0xff, 0x39, 0x49, 0x59, 0xff, 0x41, 0x38, 0x85, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3a, 0xd9, 0xff, 0x41, 0x43, 0x71, 0xff, 0x44, 0x44, 0x45, 0xff, 0x43, 0x44, 0x46, 0xff, 0x49, 0x43, 0x3f, 0xff, 0x4d, 0x42, 0x3a, 0xff, 0x2f, 0x50, 0x6c, 0xff, 0x1d, 0x56, 0x86, 0xff, 0x27, 0x52, 0x75, 0xff, 0x29, 0x52, 0x73, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x74, 0xff, 0x2a, 0x52, 0x73, 0xff, 0x27, 0x53, 0x76, 0xff, 0x26, 0x53, 0x78, 0xff, 0x26, 0x53, 0x79, 0xff, 0x26, 0x53, 0x79, 0xff, 0x26, 0x53, 0x78, 0xff, 0x27, 0x53, 0x76, 0xff, 0x2a, 0x52, 0x73, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x51, 0x7b, 0xff, 0x34, 0x42, 0xc0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3b, 0xcd, 0xff, 0x45, 0x41, 0x6b, 0xff, 0x43, 0x44, 0x46, 0xff, 0x41, 0x41, 0x81, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe1, 0xff, 0x41, 0x3b, 0x74, 0xff, 0x48, 0x35, 0x25, 0xff, 0x39, 0x49, 0x59, 0xff, 0x19, 0x78, 0xca, 0xff, 0x18, 0x78, 0xcb, 0xd6, 0x1b, 0x73, 0xba, 0xa0, + 0x1b, 0x73, 0xba, 0xa0, 0x18, 0x78, 0xc8, 0xd6, 0x19, 0x78, 0xc8, 0xff, 0x38, 0x49, 0x59, 0xff, 0x48, 0x35, 0x30, 0xff, 0x3b, 0x39, 0xcb, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3d, 0xc5, 0xff, 0x43, 0x43, 0x5b, 0xff, 0x44, 0x44, 0x46, 0xff, 0x44, 0x45, 0x48, 0xff, 0x4b, 0x42, 0x3c, 0xff, 0x4b, 0x43, 0x3d, 0xff, 0x2d, 0x50, 0x6e, 0xff, 0x1f, 0x56, 0x84, 0xff, 0x27, 0x53, 0x77, 0xff, 0x29, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x50, 0x7c, 0xff, 0x35, 0x41, 0xc0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3c, 0xc9, 0xff, 0x41, 0x41, 0x85, 0xff, 0x3b, 0x3b, 0xd1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x34, 0x45, 0xd5, 0xff, 0x45, 0x3b, 0x32, 0xff, 0x49, 0x35, 0x25, 0xff, 0x38, 0x49, 0x59, 0xff, 0x19, 0x78, 0xc8, 0xff, 0x18, 0x78, 0xc8, 0xd6, 0x1b, 0x73, 0xba, 0xa0, + 0x1b, 0x73, 0xba, 0xa0, 0x18, 0x78, 0xc8, 0xd6, 0x19, 0x78, 0xc8, 0xff, 0x38, 0x49, 0x59, 0xff, 0x49, 0x35, 0x25, 0xff, 0x41, 0x3b, 0x6b, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x3d, 0xad, 0xff, 0x43, 0x43, 0x4e, 0xff, 0x44, 0x45, 0x47, 0xff, 0x44, 0x45, 0x48, 0xff, 0x4b, 0x43, 0x3d, 0xff, 0x4a, 0x44, 0x3e, 0xff, 0x2f, 0x4f, 0x69, 0xff, 0x1f, 0x55, 0x83, 0xff, 0x23, 0x54, 0x7c, 0xff, 0x28, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x29, 0x52, 0x74, 0xff, 0x28, 0x52, 0x74, 0xff, 0x25, 0x52, 0x85, 0xff, 0x32, 0x42, 0xc4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xe2, 0xff, 0x2a, 0x62, 0xb6, 0xff, 0x45, 0x3b, 0x31, 0xff, 0x49, 0x35, 0x25, 0xff, 0x38, 0x49, 0x59, 0xff, 0x19, 0x78, 0xc8, 0xff, 0x18, 0x78, 0xc8, 0xd6, 0x1b, 0x73, 0xba, 0xa0, + 0x1b, 0x71, 0xba, 0xa0, 0x18, 0x77, 0xc8, 0xd6, 0x19, 0x77, 0xc8, 0xff, 0x38, 0x4a, 0x59, 0xff, 0x49, 0x35, 0x25, 0xff, 0x45, 0x3a, 0x31, 0xff, 0x32, 0x4d, 0xcc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3d, 0x3d, 0xa3, 0xff, 0x44, 0x44, 0x4f, 0xff, 0x45, 0x45, 0x46, 0xff, 0x43, 0x45, 0x48, 0xff, 0x49, 0x43, 0x3f, 0xff, 0x4b, 0x43, 0x3d, 0xff, 0x37, 0x4c, 0x5e, 0xff, 0x21, 0x56, 0x7f, 0xff, 0x20, 0x56, 0x81, 0xff, 0x26, 0x53, 0x77, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x28, 0x52, 0x74, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x74, 0xff, 0x26, 0x53, 0x77, 0xff, 0x20, 0x56, 0x81, 0xff, 0x21, 0x56, 0x7f, 0xff, 0x37, 0x4a, 0x69, 0xff, 0x40, 0x3d, 0xab, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x33, 0x51, 0xc2, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x45, 0x3a, 0x31, 0xff, 0x49, 0x35, 0x25, 0xff, 0x38, 0x4a, 0x59, 0xff, 0x19, 0x77, 0xc8, 0xff, 0x18, 0x77, 0xc8, 0xd6, 0x1b, 0x71, 0xba, 0xa0, + 0x1b, 0x71, 0xb9, 0xa0, 0x18, 0x77, 0xc7, 0xd6, 0x19, 0x77, 0xc9, 0xff, 0x38, 0x49, 0x59, 0xff, 0x49, 0x34, 0x25, 0xff, 0x45, 0x3a, 0x31, 0xff, 0x27, 0x67, 0xaf, 0xff, 0x36, 0x41, 0xd6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3e, 0x3e, 0xa4, 0xff, 0x44, 0x44, 0x4e, 0xff, 0x44, 0x45, 0x46, 0xff, 0x44, 0x45, 0x48, 0xff, 0x48, 0x44, 0x42, 0xff, 0x4d, 0x42, 0x39, 0xff, 0x41, 0x45, 0x4b, 0xff, 0x2c, 0x4f, 0x6e, 0xff, 0x20, 0x57, 0x81, 0xff, 0x21, 0x55, 0x7f, 0xff, 0x26, 0x53, 0x79, 0xff, 0x27, 0x53, 0x76, 0xff, 0x29, 0x52, 0x74, 0xff, 0x29, 0x52, 0x73, 0xff, 0x28, 0x52, 0x73, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x75, 0xff, 0x28, 0x52, 0x73, 0xff, 0x29, 0x52, 0x73, 0xff, 0x29, 0x52, 0x74, 0xff, 0x27, 0x53, 0x76, 0xff, 0x26, 0x53, 0x79, 0xff, 0x21, 0x55, 0x7f, 0xff, 0x20, 0x57, 0x81, 0xff, 0x2c, 0x4f, 0x6e, 0xff, 0x41, 0x45, 0x4b, 0xff, 0x4d, 0x42, 0x39, 0xff, 0x47, 0x43, 0x4f, 0xff, 0x3f, 0x3f, 0xa0, 0xff, 0x3a, 0x3a, 0xdf, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3d, 0x38, 0xb2, 0xff, 0x2a, 0x66, 0xa2, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x45, 0x3a, 0x31, 0xff, 0x49, 0x34, 0x25, 0xff, 0x38, 0x49, 0x59, 0xff, 0x19, 0x77, 0xc9, 0xff, 0x18, 0x77, 0xc7, 0xd6, 0x1b, 0x71, 0xb9, 0xa0, + 0x1b, 0x71, 0xb7, 0xa0, 0x18, 0x77, 0xc6, 0xd6, 0x19, 0x77, 0xc8, 0xff, 0x38, 0x49, 0x58, 0xff, 0x49, 0x34, 0x25, 0xff, 0x45, 0x3a, 0x31, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x2c, 0x5e, 0xad, 0xff, 0x3c, 0x3b, 0xd9, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3d, 0x3d, 0xb4, 0xff, 0x44, 0x44, 0x58, 0xff, 0x45, 0x45, 0x46, 0xff, 0x44, 0x45, 0x48, 0xff, 0x46, 0x45, 0x45, 0xff, 0x4d, 0x41, 0x3a, 0xff, 0x4a, 0x42, 0x3e, 0xff, 0x3b, 0x4a, 0x54, 0xff, 0x2c, 0x50, 0x6e, 0xff, 0x23, 0x53, 0x7c, 0xff, 0x22, 0x54, 0x7e, 0xff, 0x23, 0x54, 0x7c, 0xff, 0x24, 0x54, 0x7b, 0xff, 0x26, 0x53, 0x79, 0xff, 0x26, 0x53, 0x77, 0xff, 0x27, 0x53, 0x77, 0xff, 0x27, 0x53, 0x77, 0xff, 0x26, 0x53, 0x77, 0xff, 0x26, 0x53, 0x79, 0xff, 0x24, 0x54, 0x7b, 0xff, 0x23, 0x54, 0x7c, 0xff, 0x22, 0x54, 0x7e, 0xff, 0x23, 0x53, 0x7c, 0xff, 0x2c, 0x50, 0x6e, 0xff, 0x3b, 0x4a, 0x54, 0xff, 0x4a, 0x42, 0x3e, 0xff, 0x4d, 0x41, 0x3a, 0xff, 0x46, 0x45, 0x45, 0xff, 0x44, 0x45, 0x48, 0xff, 0x43, 0x43, 0x6b, 0xff, 0x3c, 0x3c, 0xd6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe3, 0xff, 0x3c, 0x3c, 0xce, 0xff, 0x48, 0x37, 0x3f, 0xff, 0x29, 0x68, 0x9f, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x45, 0x3a, 0x31, 0xff, 0x49, 0x34, 0x25, 0xff, 0x38, 0x49, 0x58, 0xff, 0x19, 0x77, 0xc8, 0xff, 0x18, 0x77, 0xc6, 0xd6, 0x1b, 0x71, 0xb7, 0xa0, + 0x1b, 0x71, 0xb7, 0xa0, 0x18, 0x77, 0xc6, 0xd6, 0x19, 0x77, 0xc8, 0xff, 0x38, 0x49, 0x58, 0xff, 0x49, 0x34, 0x25, 0xff, 0x45, 0x3a, 0x31, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x29, 0x68, 0x9f, 0xff, 0x46, 0x38, 0x62, 0xff, 0x38, 0x38, 0xde, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xc9, 0xff, 0x42, 0x42, 0x7b, 0xff, 0x45, 0x45, 0x46, 0xff, 0x45, 0x45, 0x48, 0xff, 0x45, 0x46, 0x48, 0xff, 0x48, 0x43, 0x41, 0xff, 0x4c, 0x41, 0x3b, 0xff, 0x48, 0x43, 0x41, 0xff, 0x40, 0x47, 0x4e, 0xff, 0x36, 0x4b, 0x5e, 0xff, 0x2e, 0x4e, 0x6a, 0xff, 0x29, 0x51, 0x73, 0xff, 0x27, 0x53, 0x77, 0xff, 0x25, 0x53, 0x79, 0xff, 0x25, 0x53, 0x7a, 0xff, 0x25, 0x53, 0x7a, 0xff, 0x25, 0x53, 0x79, 0xff, 0x27, 0x53, 0x77, 0xff, 0x29, 0x51, 0x73, 0xff, 0x2e, 0x4e, 0x6a, 0xff, 0x36, 0x4b, 0x5e, 0xff, 0x40, 0x47, 0x4e, 0xff, 0x48, 0x43, 0x41, 0xff, 0x4c, 0x41, 0x3b, 0xff, 0x48, 0x43, 0x41, 0xff, 0x45, 0x46, 0x48, 0xff, 0x45, 0x45, 0x48, 0xff, 0x40, 0x40, 0x86, 0xff, 0x3c, 0x3c, 0xcb, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xd6, 0xff, 0x43, 0x40, 0x60, 0xff, 0x4b, 0x37, 0x29, 0xff, 0x29, 0x68, 0x9f, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x45, 0x3a, 0x31, 0xff, 0x49, 0x34, 0x25, 0xff, 0x38, 0x49, 0x58, 0xff, 0x19, 0x77, 0xc8, 0xff, 0x18, 0x77, 0xc6, 0xd6, 0x1b, 0x71, 0xb7, 0xa0, + 0x1b, 0x71, 0xb7, 0xa0, 0x18, 0x77, 0xc6, 0xd6, 0x19, 0x77, 0xc8, 0xff, 0x38, 0x49, 0x58, 0xff, 0x49, 0x34, 0x25, 0xff, 0x45, 0x3a, 0x31, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x29, 0x68, 0x9f, 0xff, 0x4b, 0x37, 0x2a, 0xff, 0x41, 0x3e, 0x70, 0xff, 0x3a, 0x3a, 0xdd, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xdb, 0xff, 0x3d, 0x3d, 0xa9, 0xff, 0x44, 0x44, 0x5b, 0xff, 0x45, 0x45, 0x46, 0xff, 0x45, 0x45, 0x48, 0xff, 0x45, 0x45, 0x46, 0xff, 0x48, 0x44, 0x41, 0xff, 0x4a, 0x43, 0x3e, 0xff, 0x49, 0x44, 0x3f, 0xff, 0x47, 0x44, 0x42, 0xff, 0x44, 0x45, 0x47, 0xff, 0x41, 0x47, 0x4e, 0xff, 0x3d, 0x48, 0x53, 0xff, 0x3d, 0x49, 0x54, 0xff, 0x3d, 0x49, 0x54, 0xff, 0x3d, 0x48, 0x53, 0xff, 0x41, 0x47, 0x4e, 0xff, 0x44, 0x45, 0x47, 0xff, 0x47, 0x44, 0x42, 0xff, 0x49, 0x44, 0x3f, 0xff, 0x4a, 0x43, 0x3e, 0xff, 0x48, 0x44, 0x41, 0xff, 0x45, 0x45, 0x46, 0xff, 0x45, 0x45, 0x48, 0xff, 0x43, 0x43, 0x66, 0xff, 0x3d, 0x3d, 0xb1, 0xff, 0x3a, 0x3a, 0xdc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xd4, 0xff, 0x41, 0x42, 0x67, 0xff, 0x45, 0x41, 0x3f, 0xff, 0x4b, 0x37, 0x29, 0xff, 0x29, 0x68, 0x9f, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x45, 0x3a, 0x31, 0xff, 0x49, 0x34, 0x25, 0xff, 0x38, 0x49, 0x58, 0xff, 0x19, 0x77, 0xc8, 0xff, 0x18, 0x77, 0xc6, 0xd6, 0x1b, 0x71, 0xb7, 0xa0, + 0x1b, 0x71, 0xb7, 0xa0, 0x18, 0x77, 0xc5, 0xd6, 0x19, 0x77, 0xc6, 0xff, 0x38, 0x49, 0x58, 0xff, 0x49, 0x34, 0x26, 0xff, 0x45, 0x3b, 0x33, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x29, 0x68, 0x9e, 0xff, 0x4b, 0x37, 0x29, 0xff, 0x45, 0x41, 0x40, 0xff, 0x40, 0x41, 0x75, 0xff, 0x3c, 0x3c, 0xd4, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3c, 0x3c, 0xd6, 0xff, 0x40, 0x40, 0x9c, 0xff, 0x43, 0x43, 0x62, 0xff, 0x45, 0x45, 0x47, 0xff, 0x45, 0x45, 0x46, 0xff, 0x45, 0x45, 0x46, 0xff, 0x46, 0x45, 0x45, 0xff, 0x47, 0x44, 0x43, 0xff, 0x48, 0x44, 0x41, 0xff, 0x48, 0x43, 0x41, 0xff, 0x48, 0x43, 0x41, 0xff, 0x49, 0x44, 0x40, 0xff, 0x49, 0x44, 0x40, 0xff, 0x48, 0x43, 0x41, 0xff, 0x48, 0x43, 0x41, 0xff, 0x48, 0x44, 0x41, 0xff, 0x47, 0x44, 0x43, 0xff, 0x46, 0x45, 0x45, 0xff, 0x45, 0x45, 0x47, 0xff, 0x45, 0x45, 0x48, 0xff, 0x43, 0x43, 0x69, 0xff, 0x3d, 0x3d, 0xac, 0xff, 0x3b, 0x3b, 0xdb, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3c, 0x3c, 0xcc, 0xff, 0x42, 0x42, 0x66, 0xff, 0x43, 0x45, 0x48, 0xff, 0x44, 0x41, 0x3e, 0xff, 0x4b, 0x38, 0x29, 0xff, 0x29, 0x68, 0x9e, 0xff, 0x25, 0x6d, 0xa9, 0xff, 0x45, 0x3b, 0x33, 0xff, 0x49, 0x34, 0x26, 0xff, 0x38, 0x49, 0x59, 0xff, 0x19, 0x77, 0xc6, 0xff, 0x18, 0x77, 0xc6, 0xd6, 0x1b, 0x71, 0xb7, 0xa0, + 0x1b, 0x70, 0xb7, 0xa0, 0x18, 0x76, 0xc5, 0xd6, 0x18, 0x78, 0xc6, 0xff, 0x39, 0x48, 0x55, 0xff, 0x4a, 0x32, 0x20, 0xff, 0x46, 0x38, 0x2c, 0xff, 0x25, 0x6c, 0xa7, 0xff, 0x28, 0x68, 0x9e, 0xff, 0x4b, 0x38, 0x29, 0xff, 0x45, 0x42, 0x40, 0xff, 0x43, 0x45, 0x48, 0xff, 0x42, 0x42, 0x64, 0xff, 0x3b, 0x3b, 0xc3, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x39, 0x39, 0xe1, 0xff, 0x3a, 0x3a, 0xde, 0xff, 0x3e, 0x3e, 0xb0, 0xff, 0x42, 0x42, 0x82, 0xff, 0x44, 0x44, 0x5a, 0xff, 0x45, 0x45, 0x4c, 0xff, 0x45, 0x45, 0x4a, 0xff, 0x45, 0x45, 0x48, 0xff, 0x45, 0x45, 0x47, 0xff, 0x45, 0x45, 0x47, 0xff, 0x45, 0x45, 0x47, 0xff, 0x45, 0x45, 0x47, 0xff, 0x45, 0x45, 0x47, 0xff, 0x45, 0x45, 0x48, 0xff, 0x45, 0x45, 0x4a, 0xff, 0x45, 0x45, 0x4c, 0xff, 0x43, 0x43, 0x60, 0xff, 0x40, 0x40, 0x8a, 0xff, 0x3d, 0x3d, 0xba, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe0, 0xff, 0x3c, 0x3c, 0xb9, 0xff, 0x43, 0x43, 0x59, 0xff, 0x44, 0x44, 0x45, 0xff, 0x43, 0x45, 0x47, 0xff, 0x44, 0x41, 0x3f, 0xff, 0x4b, 0x38, 0x2a, 0xff, 0x28, 0x68, 0x9f, 0xff, 0x25, 0x6c, 0xa7, 0xff, 0x46, 0x38, 0x2c, 0xff, 0x4a, 0x32, 0x20, 0xff, 0x39, 0x48, 0x55, 0xff, 0x18, 0x78, 0xc6, 0xff, 0x18, 0x76, 0xc6, 0xd6, 0x1b, 0x70, 0xb7, 0xa0, + 0x1b, 0x70, 0xb7, 0xa0, 0x18, 0x77, 0xc7, 0xd6, 0x19, 0x77, 0xc7, 0xff, 0x3e, 0x3f, 0x41, 0xff, 0x50, 0x26, 0x03, 0xff, 0x4d, 0x2c, 0x10, 0xff, 0x27, 0x69, 0xa0, 0xff, 0x2b, 0x63, 0x92, 0xff, 0x50, 0x31, 0x17, 0xff, 0x43, 0x43, 0x43, 0xff, 0x41, 0x45, 0x4a, 0xff, 0x44, 0x45, 0x46, 0xff, 0x43, 0x43, 0x54, 0xff, 0x3e, 0x3e, 0xa7, 0xff, 0x3b, 0x3b, 0xd9, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe1, 0xff, 0x3c, 0x3c, 0xc2, 0xff, 0x3e, 0x3e, 0xa8, 0xff, 0x3f, 0x3f, 0x94, 0xff, 0x40, 0x41, 0x85, 0xff, 0x41, 0x42, 0x7b, 0xff, 0x41, 0x42, 0x77, 0xff, 0x42, 0x42, 0x7c, 0xff, 0x41, 0x41, 0x86, 0xff, 0x3f, 0x3f, 0x96, 0xff, 0x3d, 0x3e, 0xae, 0xff, 0x3c, 0x3c, 0xc6, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xd8, 0xff, 0x3e, 0x3e, 0x99, 0xff, 0x43, 0x43, 0x4d, 0xff, 0x44, 0x44, 0x46, 0xff, 0x44, 0x45, 0x46, 0xff, 0x41, 0x45, 0x4a, 0xff, 0x43, 0x43, 0x43, 0xff, 0x50, 0x31, 0x18, 0xff, 0x2b, 0x63, 0x92, 0xff, 0x27, 0x69, 0x9f, 0xff, 0x4d, 0x2c, 0x10, 0xff, 0x50, 0x26, 0x03, 0xff, 0x3e, 0x3f, 0x41, 0xff, 0x19, 0x77, 0xc7, 0xff, 0x18, 0x77, 0xc8, 0xd6, 0x1b, 0x70, 0xb7, 0xa0, + 0x1b, 0x70, 0xb6, 0xa0, 0x19, 0x72, 0xbd, 0xd6, 0x1a, 0x73, 0xbf, 0xff, 0x2c, 0x5f, 0x8c, 0xff, 0x33, 0x56, 0x76, 0xff, 0x32, 0x5a, 0x7b, 0xff, 0x1f, 0x79, 0xc4, 0xff, 0x27, 0x6a, 0xa3, 0xff, 0x4d, 0x32, 0x1d, 0xff, 0x48, 0x3b, 0x31, 0xff, 0x40, 0x46, 0x4a, 0xff, 0x44, 0x45, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x41, 0x41, 0x77, 0xff, 0x3c, 0x3c, 0xc3, 0xff, 0x3a, 0x3a, 0xdc, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3b, 0xda, 0xff, 0x3c, 0x3c, 0xbb, 0xff, 0x42, 0x42, 0x6b, 0xff, 0x44, 0x44, 0x46, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x44, 0x45, 0xff, 0x44, 0x45, 0x45, 0xff, 0x41, 0x46, 0x4a, 0xff, 0x49, 0x3b, 0x31, 0xff, 0x4d, 0x32, 0x1e, 0xff, 0x28, 0x6a, 0xa2, 0xff, 0x1f, 0x79, 0xc4, 0xff, 0x32, 0x5a, 0x7b, 0xff, 0x33, 0x56, 0x76, 0xff, 0x2c, 0x5f, 0x8c, 0xff, 0x1a, 0x73, 0xbe, 0xff, 0x19, 0x72, 0xbd, 0xd6, 0x1b, 0x70, 0xb6, 0xa0, + 0x1b, 0x70, 0xb7, 0xa0, 0x1b, 0x6c, 0xb2, 0xd6, 0x1d, 0x6e, 0xb5, 0xff, 0x13, 0x8c, 0xee, 0xff, 0x0f, 0x99, 0xff, 0xff, 0x0f, 0x94, 0xff, 0xff, 0x14, 0x8b, 0xef, 0xff, 0x15, 0x88, 0xe9, 0xff, 0x26, 0x6b, 0xa5, 0xff, 0x4c, 0x36, 0x26, 0xff, 0x4f, 0x33, 0x1b, 0xff, 0x4a, 0x39, 0x2c, 0xff, 0x4b, 0x39, 0x2b, 0xff, 0x4b, 0x3a, 0x2c, 0xff, 0x4b, 0x3a, 0x2d, 0xff, 0x4b, 0x3a, 0x35, 0xff, 0x44, 0x3a, 0x7f, 0xff, 0x3e, 0x3a, 0xbf, 0xff, 0x3b, 0x3a, 0xd8, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3b, 0x3a, 0xd5, 0xff, 0x3e, 0x3a, 0xb8, 0xff, 0x45, 0x3a, 0x75, 0xff, 0x4c, 0x3a, 0x31, 0xff, 0x4c, 0x3a, 0x2d, 0xff, 0x4b, 0x3a, 0x2d, 0xff, 0x4b, 0x3a, 0x2c, 0xff, 0x4b, 0x39, 0x2b, 0xff, 0x4a, 0x39, 0x2c, 0xff, 0x4f, 0x33, 0x1b, 0xff, 0x4a, 0x36, 0x26, 0xff, 0x27, 0x6b, 0xa5, 0xff, 0x16, 0x89, 0xe9, 0xff, 0x14, 0x8b, 0xf0, 0xff, 0x0f, 0x94, 0xff, 0xff, 0x0f, 0x99, 0xff, 0xff, 0x13, 0x8c, 0xee, 0xff, 0x1d, 0x6e, 0xb5, 0xff, 0x1b, 0x6c, 0xb2, 0xd6, 0x1b, 0x70, 0xb7, 0xa0, + 0x1b, 0x70, 0xb7, 0xa0, 0x1a, 0x72, 0xbb, 0xd6, 0x1c, 0x72, 0xbb, 0xff, 0x26, 0x67, 0xa0, 0xff, 0x2b, 0x65, 0x97, 0xff, 0x2b, 0x64, 0x94, 0xff, 0x2a, 0x66, 0x99, 0xff, 0x1a, 0x80, 0xd9, 0xff, 0x13, 0x8b, 0xf0, 0xff, 0x2b, 0x66, 0x97, 0xff, 0x33, 0x5b, 0x7b, 0xff, 0x2e, 0x60, 0x8c, 0xff, 0x2f, 0x61, 0x8b, 0xff, 0x2f, 0x61, 0x8b, 0xff, 0x2f, 0x60, 0x8b, 0xff, 0x2f, 0x60, 0x8b, 0xff, 0x2f, 0x61, 0x8b, 0xff, 0x30, 0x5f, 0x90, 0xff, 0x34, 0x52, 0xae, 0xff, 0x38, 0x45, 0xca, 0xff, 0x39, 0x3f, 0xd7, 0xff, 0x3a, 0x3b, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3b, 0xdf, 0xff, 0x38, 0x40, 0xd5, 0xff, 0x37, 0x46, 0xc7, 0xff, 0x33, 0x54, 0xa9, 0xff, 0x2f, 0x60, 0x8d, 0xff, 0x2f, 0x61, 0x8b, 0xff, 0x2f, 0x61, 0x8b, 0xff, 0x2f, 0x60, 0x8b, 0xff, 0x2f, 0x60, 0x8b, 0xff, 0x2f, 0x61, 0x8b, 0xff, 0x2f, 0x61, 0x8b, 0xff, 0x2e, 0x60, 0x8c, 0xff, 0x33, 0x5b, 0x7c, 0xff, 0x2a, 0x66, 0x99, 0xff, 0x13, 0x8a, 0xf0, 0xff, 0x1b, 0x81, 0xd9, 0xff, 0x2a, 0x66, 0x99, 0xff, 0x2b, 0x64, 0x94, 0xff, 0x2b, 0x65, 0x97, 0xff, 0x26, 0x67, 0xa0, 0xff, 0x1c, 0x72, 0xbc, 0xff, 0x1a, 0x72, 0xbb, 0xd6, 0x1b, 0x70, 0xb7, 0xa0, + 0x1b, 0x6f, 0xb6, 0xa1, 0x18, 0x76, 0xc6, 0xd8, 0x1a, 0x75, 0xc4, 0xff, 0x3e, 0x3e, 0x3e, 0xfa, 0x4a, 0x2c, 0x13, 0xfe, 0x46, 0x35, 0x28, 0xff, 0x4b, 0x2f, 0x19, 0xff, 0x2f, 0x5f, 0x8a, 0xff, 0x14, 0x8a, 0xee, 0xff, 0x19, 0x7e, 0xd0, 0xff, 0x23, 0x6f, 0xb0, 0xff, 0x23, 0x70, 0xb1, 0xff, 0x22, 0x72, 0xb4, 0xff, 0x22, 0x71, 0xb4, 0xff, 0x23, 0x72, 0xb4, 0xff, 0x23, 0x71, 0xb4, 0xff, 0x22, 0x72, 0xb5, 0xff, 0x22, 0x72, 0xb5, 0xff, 0x22, 0x72, 0xb5, 0xff, 0x22, 0x72, 0xb5, 0xff, 0x28, 0x65, 0xc0, 0xff, 0x2d, 0x58, 0xca, 0xff, 0x33, 0x4b, 0xd4, 0xff, 0x35, 0x46, 0xd8, 0xff, 0x37, 0x40, 0xdd, 0xff, 0x39, 0x3d, 0xe0, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x3a, 0x3a, 0xe2, 0xff, 0x38, 0x3e, 0xdf, 0xff, 0x37, 0x41, 0xdc, 0xff, 0x35, 0x47, 0xd8, 0xff, 0x32, 0x4d, 0xd3, 0xff, 0x2c, 0x5a, 0xc8, 0xff, 0x27, 0x67, 0xbe, 0xff, 0x22, 0x72, 0xb5, 0xff, 0x22, 0x72, 0xb5, 0xff, 0x22, 0x72, 0xb5, 0xff, 0x22, 0x72, 0xb5, 0xff, 0x22, 0x72, 0xb5, 0xff, 0x23, 0x71, 0xb4, 0xff, 0x23, 0x72, 0xb4, 0xff, 0x22, 0x71, 0xb4, 0xff, 0x22, 0x72, 0xb4, 0xff, 0x23, 0x70, 0xb1, 0xff, 0x23, 0x6f, 0xb0, 0xff, 0x1b, 0x7e, 0xd1, 0xff, 0x14, 0x8a, 0xee, 0xff, 0x2f, 0x5f, 0x8a, 0xff, 0x4b, 0x2f, 0x19, 0xff, 0x46, 0x35, 0x28, 0xff, 0x4a, 0x2b, 0x13, 0xfe, 0x3d, 0x3e, 0x3e, 0xfa, 0x1a, 0x77, 0xc4, 0xff, 0x18, 0x76, 0xc6, 0xd8, 0x1b, 0x6f, 0xb6, 0xa1, + 0x1b, 0x6d, 0xb5, 0xa8, 0x19, 0x74, 0xc0, 0xde, 0x15, 0x7b, 0xd0, 0xff, 0x37, 0x49, 0x55, 0xed, 0x4d, 0x2b, 0x0d, 0xfa, 0x41, 0x3c, 0x39, 0xff, 0x49, 0x31, 0x20, 0xff, 0x33, 0x57, 0x79, 0xff, 0x0e, 0x92, 0xff, 0xff, 0x28, 0x68, 0x9e, 0xff, 0x49, 0x35, 0x24, 0xff, 0x48, 0x39, 0x2e, 0xff, 0x45, 0x3e, 0x39, 0xff, 0x45, 0x3e, 0x38, 0xff, 0x45, 0x3f, 0x38, 0xff, 0x45, 0x3e, 0x39, 0xff, 0x46, 0x3e, 0x3a, 0xff, 0x46, 0x3e, 0x3a, 0xff, 0x46, 0x3e, 0x3a, 0xff, 0x46, 0x3e, 0x3a, 0xff, 0x46, 0x3e, 0x3c, 0xff, 0x46, 0x3e, 0x3f, 0xff, 0x44, 0x3e, 0x54, 0xff, 0x42, 0x3d, 0x73, 0xff, 0x40, 0x3c, 0x96, 0xff, 0x3f, 0x3c, 0xab, 0xff, 0x3d, 0x3b, 0xbe, 0xff, 0x3c, 0x3b, 0xca, 0xff, 0x3b, 0x3a, 0xd2, 0xff, 0x3b, 0x3a, 0xd5, 0xff, 0x3b, 0x3a, 0xd0, 0xff, 0x3c, 0x3b, 0xc8, 0xff, 0x3d, 0x3b, 0xbb, 0xff, 0x3e, 0x3b, 0xa5, 0xff, 0x40, 0x3c, 0x92, 0xff, 0x43, 0x3d, 0x6f, 0xff, 0x45, 0x3e, 0x50, 0xff, 0x46, 0x3e, 0x3e, 0xff, 0x46, 0x3e, 0x3b, 0xff, 0x46, 0x3e, 0x3a, 0xff, 0x46, 0x3e, 0x3a, 0xff, 0x46, 0x3e, 0x3a, 0xff, 0x46, 0x3e, 0x3a, 0xff, 0x46, 0x3e, 0x3a, 0xff, 0x45, 0x3e, 0x39, 0xff, 0x45, 0x3f, 0x38, 0xff, 0x45, 0x3e, 0x38, 0xff, 0x45, 0x3e, 0x39, 0xff, 0x47, 0x39, 0x2e, 0xff, 0x49, 0x35, 0x24, 0xff, 0x28, 0x68, 0x9d, 0xff, 0x0e, 0x91, 0xff, 0xff, 0x33, 0x57, 0x79, 0xff, 0x49, 0x31, 0x20, 0xff, 0x41, 0x3c, 0x39, 0xff, 0x4d, 0x2b, 0x0e, 0xfa, 0x38, 0x48, 0x56, 0xed, 0x15, 0x7a, 0xd0, 0xff, 0x18, 0x74, 0xc0, 0xde, 0x1b, 0x6d, 0xb5, 0xa8, + 0x1a, 0x6f, 0xb4, 0x9a, 0x1b, 0x6f, 0xb5, 0xd3, 0x14, 0x7c, 0xd2, 0xff, 0x1f, 0x6b, 0xa8, 0xf3, 0x44, 0x35, 0x27, 0xf2, 0x4a, 0x2f, 0x18, 0xfc, 0x4d, 0x2c, 0x11, 0xff, 0x31, 0x5a, 0x7b, 0xff, 0x0c, 0x96, 0xff, 0xff, 0x2b, 0x66, 0x9a, 0xff, 0x50, 0x2d, 0x11, 0xff, 0x4d, 0x31, 0x1c, 0xff, 0x4a, 0x37, 0x28, 0xff, 0x4a, 0x37, 0x27, 0xff, 0x4a, 0x36, 0x28, 0xff, 0x4a, 0x37, 0x29, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4b, 0x37, 0x28, 0xff, 0x4a, 0x37, 0x29, 0xff, 0x4a, 0x36, 0x28, 0xff, 0x4a, 0x37, 0x27, 0xff, 0x4a, 0x37, 0x28, 0xff, 0x4d, 0x31, 0x1c, 0xff, 0x50, 0x2d, 0x11, 0xff, 0x2a, 0x67, 0x9a, 0xff, 0x0c, 0x97, 0xff, 0xff, 0x33, 0x5a, 0x7b, 0xff, 0x4d, 0x2c, 0x11, 0xff, 0x4a, 0x2f, 0x17, 0xfb, 0x44, 0x35, 0x28, 0xf2, 0x1f, 0x6a, 0xaa, 0xf3, 0x14, 0x7b, 0xd3, 0xff, 0x1b, 0x6f, 0xb5, 0xd3, 0x1a, 0x6f, 0xb4, 0x9a, + 0x1b, 0x70, 0xba, 0x30, 0x1a, 0x6e, 0xb5, 0x87, 0x1b, 0x72, 0xb8, 0xff, 0x14, 0x7c, 0xd5, 0xff, 0x1f, 0x69, 0xa9, 0xf3, 0x3a, 0x46, 0x50, 0xed, 0x46, 0x34, 0x27, 0xfa, 0x2d, 0x5b, 0x83, 0xff, 0x10, 0x8d, 0xf6, 0xff, 0x26, 0x68, 0xa1, 0xff, 0x41, 0x3d, 0x3d, 0xff, 0x3f, 0x41, 0x46, 0xff, 0x3d, 0x46, 0x4f, 0xff, 0x3d, 0x46, 0x4e, 0xff, 0x3d, 0x46, 0x4e, 0xff, 0x3d, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3c, 0x46, 0x4e, 0xff, 0x3d, 0x46, 0x4e, 0xff, 0x3d, 0x46, 0x4e, 0xff, 0x3d, 0x46, 0x4e, 0xff, 0x3d, 0x46, 0x4f, 0xff, 0x3f, 0x41, 0x46, 0xff, 0x41, 0x3d, 0x3d, 0xff, 0x26, 0x68, 0xa1, 0xff, 0x10, 0x8d, 0xf6, 0xff, 0x2d, 0x5b, 0x83, 0xff, 0x46, 0x34, 0x27, 0xfa, 0x3a, 0x46, 0x50, 0xec, 0x20, 0x69, 0xa7, 0xf4, 0x14, 0x7c, 0xd3, 0xff, 0x1b, 0x71, 0xb9, 0xff, 0x1a, 0x6e, 0xb5, 0x87, 0x1b, 0x70, 0xba, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x69, 0xb4, 0x11, 0x1b, 0x6e, 0xb3, 0xc3, 0x1b, 0x73, 0xbc, 0xff, 0x15, 0x7b, 0xd1, 0xff, 0x17, 0x75, 0xc6, 0xff, 0x1a, 0x6f, 0xb8, 0xff, 0x1a, 0x6d, 0xb5, 0xff, 0x1b, 0x6b, 0xb1, 0xff, 0x1a, 0x6d, 0xb3, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x19, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x19, 0x6e, 0xb7, 0xff, 0x1a, 0x6e, 0xb7, 0xff, 0x1a, 0x6d, 0xb3, 0xff, 0x1b, 0x6b, 0xb1, 0xff, 0x1a, 0x6d, 0xb5, 0xff, 0x1a, 0x6f, 0xb8, 0xff, 0x17, 0x75, 0xc6, 0xff, 0x15, 0x7b, 0xd0, 0xff, 0x1b, 0x74, 0xbc, 0xff, 0x1b, 0x6f, 0xb4, 0xc3, 0x1e, 0x69, 0xb4, 0x11, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x73, 0xb3, 0x14, 0x1d, 0x6f, 0xb7, 0x8e, 0x1c, 0x72, 0xba, 0xde, 0x18, 0x74, 0xc4, 0xe9, 0x16, 0x77, 0xcb, 0xe1, 0x17, 0x72, 0xbd, 0xdf, 0x1b, 0x6a, 0xae, 0xdf, 0x19, 0x70, 0xb9, 0xdf, 0x17, 0x75, 0xc7, 0xdf, 0x17, 0x75, 0xc6, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x73, 0xc4, 0xdf, 0x17, 0x75, 0xc6, 0xdf, 0x17, 0x75, 0xc7, 0xdf, 0x19, 0x70, 0xb9, 0xdf, 0x1b, 0x6a, 0xae, 0xdf, 0x17, 0x72, 0xbd, 0xdf, 0x16, 0x77, 0xcb, 0xe1, 0x18, 0x74, 0xc4, 0xe9, 0x1c, 0x71, 0xb9, 0xde, 0x1d, 0x6f, 0xb7, 0x8e, 0x1a, 0x73, 0xb3, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +#endif +}; + +const lv_img_dsc_t img_cab_disabled = { + .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA, + .header.always_zero = 0, + .header.reserved = 0, + .header.w = 60, + .header.h = 70, + .data_size = 4200 * LV_IMG_PX_SIZE_ALPHA_BYTE, + .data = img_cab_disabled_map, +}; diff --git a/ui_design_320x170land/Tonex_Controller_320_170.eez-project-ui-state b/ui_design_320x170land/Tonex_Controller_320_170.eez-project-ui-state index 83b73dbc..fe4fa3b0 100644 --- a/ui_design_320x170land/Tonex_Controller_320_170.eez-project-ui-state +++ b/ui_design_320x170land/Tonex_Controller_320_170.eez-project-ui-state @@ -166,8 +166,7 @@ "enableClose": false, "icon": "svg:hierarchy" } - ], - "active": true + ] }, { "type": "tabset", @@ -205,7 +204,8 @@ }, "icon": "svg:page" } - ] + ], + "active": true }, { "type": "row", diff --git a/ui_design_480x320land/Tonex_Controller_480_320.eez-project b/ui_design_480x320land/Tonex_Controller_480_320.eez-project index dbff0307..ca7125db 100644 --- a/ui_design_480x320land/Tonex_Controller_480_320.eez-project +++ b/ui_design_480x320land/Tonex_Controller_480_320.eez-project @@ -26065,6 +26065,24 @@ "alwaysBuild": false, "lvglBinaryOutputFormat": 3, "lvglDither": false + }, + { + "objID": "a9564c0b-4d54-4458-d1f5-59ffacc6e094", + "name": "amp_disabled", + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAA1CAYAAADVn2JsAAAACXBIWXMAAAsTAAALEwEAmpwYAAAHJ2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgOS4xLWMwMDEgMTE2LmNhODJhZTQsIDIwMjQvMDIvMjItMjE6NTg6NDEgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCAyNC43IChXaW5kb3dzKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjUtMTAtMjVUMTY6NTY6MzQrMTE6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDI1LTExLTE3VDIxOjA3OjM1KzExOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDI1LTExLTE3VDIxOjA3OjM1KzExOjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpjNDk2M2E2MS1mMTEzLTQ4NGMtYmI1Mi01ZDg5OTk3OTdkODUiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDowOWY2ZThkZC1iOTk1LTMyNDEtYjczZi1kODQwMjgxZDhhZTYiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyNTlmMDhhMS04NzEzLWNkNDctOGJjZS1jYjhmZGZjOWNhMWYiPiA8cGhvdG9zaG9wOkRvY3VtZW50QW5jZXN0b3JzPiA8cmRmOkJhZz4gPHJkZjpsaT54bXAuZGlkOmU2ZWRhZmYzLTc3OWItNjY0Yi1iNjg3LTRmYWFmY2NhNWYxODwvcmRmOmxpPiA8L3JkZjpCYWc+IDwvcGhvdG9zaG9wOkRvY3VtZW50QW5jZXN0b3JzPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjI1OWYwOGExLTg3MTMtY2Q0Ny04YmNlLWNiOGZkZmM5Y2ExZiIgc3RFdnQ6d2hlbj0iMjAyNS0xMC0yNVQxNjo1NjozNCsxMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDI0LjcgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDowMDAxZGUyNy00YjFlLTk5NDktOTEyZS1mNzk4YmYyMWVhMjAiIHN0RXZ0OndoZW49IjIwMjUtMTAtMjVUMTc6MTU6MzErMTE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyNC43IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6YzQ5NjNhNjEtZjExMy00ODRjLWJiNTItNWQ4OTk5Nzk3ZDg1IiBzdEV2dDp3aGVuPSIyMDI1LTExLTE3VDIxOjA3OjM1KzExOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjQuNyAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8i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", + "bpp": 32, + "alwaysBuild": false, + "lvglBinaryOutputFormat": 3, + "lvglDither": false + }, + { + "objID": "0a057f32-d24a-4fe6-b065-e4154a980ea6", + "name": "cab_disabled", + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAA1CAYAAADVn2JsAAAACXBIWXMAAAsTAAALEwEAmpwYAAAHJ2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgOS4xLWMwMDEgMTE2LmNhODJhZTQsIDIwMjQvMDIvMjItMjE6NTg6NDEgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCAyNC43IChXaW5kb3dzKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjUtMTAtMjVUMTY6NTY6MjUrMTE6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDI1LTExLTE3VDIxOjA3OjU4KzExOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDI1LTExLTE3VDIxOjA3OjU4KzExOjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2NzQ4MmE1ZC0wMzEzLWQyNDktOTNkMC1kOWY2MTBkZTI0YmUiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDowM2VlYTExOC0wYjQ3LWYwNDMtOGIwZS00ZTBkMjhjNzE1NzEiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo5NTIwYWE0NS1jNTJlLWUwNGEtYmRkYy0zODg0ZDk4NTJkODciPiA8cGhvdG9zaG9wOkRvY3VtZW50QW5jZXN0b3JzPiA8cmRmOkJhZz4gPHJkZjpsaT54bXAuZGlkOmU2ZWRhZmYzLTc3OWItNjY0Yi1iNjg3LTRmYWFmY2NhNWYxODwvcmRmOmxpPiA8L3JkZjpCYWc+IDwvcGhvdG9zaG9wOkRvY3VtZW50QW5jZXN0b3JzPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjk1MjBhYTQ1LWM1MmUtZTA0YS1iZGRjLTM4ODRkOTg1MmQ4NyIgc3RFdnQ6d2hlbj0iMjAyNS0xMC0yNVQxNjo1NjoyNSsxMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDI0LjcgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpkM2JkNDk5MS1iNTI0LTdhNDEtODViZi02MzRlZTdhNWJmM2YiIHN0RXZ0OndoZW49IjIwMjUtMTAtMjVUMTc6MTU6MjErMTE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyNC43IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6Njc0ODJhNWQtMDMxMy1kMjQ5LTkzZDAtZDlmNjEwZGUyNGJlIiBzdEV2dDp3aGVuPSIyMDI1LTExLTE3VDIxOjA3OjU4KzExOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjQuNyAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8i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", + "bpp": 32, + "alwaysBuild": false, + "lvglBinaryOutputFormat": 3, + "lvglDither": false } ], "colors": [], diff --git a/ui_design_480x320land/assets/amp_disabled.png b/ui_design_480x320land/assets/amp_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..c9bf96874729ce932f3e63b5c46637aacc16b2f8 GIT binary patch literal 6787 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 VCv_s``}W^NriNAq)%u>%{{zMBjq3ma literal 0 HcmV?d00001 diff --git a/ui_design_480x320land/assets/cab_disabled.png b/ui_design_480x320land/assets/cab_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..774be086b1aef21a9f4eadb3679f3a1e1215230e GIT binary patch literal 7089 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 O&Dg*~ze3j~=05;`s`{${ literal 0 HcmV?d00001 diff --git a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project index df2b0fd9..f4a5572d 100644 --- a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project +++ b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project @@ -26130,6 +26130,24 @@ "alwaysBuild": false, "lvglBinaryOutputFormat": 3, "lvglDither": false + }, + { + "objID": "4720cd3f-52f0-4d1e-9db3-ca118821bc21", + "name": "amp_disabled", + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAABGCAYAAACQRffVAAAACXBIWXMAAAsTAAALEwEAmpwYAAAHJ2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgOS4xLWMwMDEgMTE2LmNhODJhZTQsIDIwMjQvMDIvMjItMjE6NTg6NDEgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCAyNC43IChXaW5kb3dzKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjUtMTAtMjVUMTY6NTY6MzQrMTE6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDI1LTExLTE3VDIxOjA1OjM3KzExOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDI1LTExLTE3VDIxOjA1OjM3KzExOjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4MTQzYTNlMC1lOTZmLTkxNGItOTg5MC1mMzU5NGZhZDE0MzQiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo2YTUyMGVjZi1iZDU5LWNjNGUtOGQ2ZS03NWM0YzI3NjUyM2IiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyNTlmMDhhMS04NzEzLWNkNDctOGJjZS1jYjhmZGZjOWNhMWYiPiA8cGhvdG9zaG9wOkRvY3VtZW50QW5jZXN0b3JzPiA8cmRmOkJhZz4gPHJkZjpsaT54bXAuZGlkOmU2ZWRhZmYzLTc3OWItNjY0Yi1iNjg3LTRmYWFmY2NhNWYxODwvcmRmOmxpPiA8L3JkZjpCYWc+IDwvcGhvdG9zaG9wOkRvY3VtZW50QW5jZXN0b3JzPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjI1OWYwOGExLTg3MTMtY2Q0Ny04YmNlLWNiOGZkZmM5Y2ExZiIgc3RFdnQ6d2hlbj0iMjAyNS0xMC0yNVQxNjo1NjozNCsxMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDI0LjcgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDowMDAxZGUyNy00YjFlLTk5NDktOTEyZS1mNzk4YmYyMWVhMjAiIHN0RXZ0OndoZW49IjIwMjUtMTAtMjVUMTc6MTU6MzErMTE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyNC43IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ODE0M2EzZTAtZTk2Zi05MTRiLTk4OTAtZjM1OTRmYWQxNDM0IiBzdEV2dDp3aGVuPSIyMDI1LTExLTE3VDIxOjA1OjM3KzExOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjQuNyAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8i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", + "bpp": 32, + "alwaysBuild": false, + "lvglBinaryOutputFormat": 3, + "lvglDither": false + }, + { + "objID": "e3b00160-1e5a-4b98-90f6-7dec343b80b2", + "name": "cab_disabled", + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAABGCAYAAACQRffVAAAACXBIWXMAAAsTAAALEwEAmpwYAAAHZWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgOS4xLWMwMDEgMTE2LmNhODJhZTQsIDIwMjQvMDIvMjItMjE6NTg6NDEgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCAyNC43IChXaW5kb3dzKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjUtMTAtMjVUMTY6NTY6MjUrMTE6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDI1LTExLTE3VDIxOjA1OjU4KzExOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDI1LTExLTE3VDIxOjA1OjU4KzExOjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDplNjA3ODM4OS1hNDgzLTQyNGYtYTY5Ni1hZGE4ZGM1NmFmYWUiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo4NGZiMmUxNi0zNGQwLWVkNGEtYmIwYy02NjU5MWI5ODc4NzAiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo5NTIwYWE0NS1jNTJlLWUwNGEtYmRkYy0zODg0ZDk4NTJkODciPiA8cGhvdG9zaG9wOkRvY3VtZW50QW5jZXN0b3JzPiA8cmRmOkJhZz4gPHJkZjpsaT54bXAuZGlkOjI1OWYwOGExLTg3MTMtY2Q0Ny04YmNlLWNiOGZkZmM5Y2ExZjwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6ZTZlZGFmZjMtNzc5Yi02NjRiLWI2ODctNGZhYWZjY2E1ZjE4PC9yZGY6bGk+IDwvcmRmOkJhZz4gPC9waG90b3Nob3A6RG9jdW1lbnRBbmNlc3RvcnM+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6OTUyMGFhNDUtYzUyZS1lMDRhLWJkZGMtMzg4NGQ5ODUyZDg3IiBzdEV2dDp3aGVuPSIyMDI1LTEwLTI1VDE2OjU2OjI1KzExOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjQuNyAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmQzYmQ0OTkxLWI1MjQtN2E0MS04NWJmLTYzNGVlN2E1YmYzZiIgc3RFdnQ6d2hlbj0iMjAyNS0xMC0yNVQxNzoxNToyMSsxMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDI0LjcgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDplNjA3ODM4OS1hNDgzLTQyNGYtYTY5Ni1hZGE4ZGM1NmFmYWUiIHN0RXZ0OndoZW49IjIwMjUtMTEtMTdUMjE6MDU6NTgrMTE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyNC43IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5n/I6vAAAdaElEQVR4Ac3BCbRlV1ng8f+39z7n3OnNNbx6NVcq80gSSEISkkgENGgrQ5NGDcYWbWHRLEQFXSrKUgRkplux7YaoiCCxwUQJSsAkVkhiZjJBKlPNVa9evfFO55y999d16/VL3XqpJK5ucPn7ybb3bYAIUiqoEEXRCBHBGCAqqwYsIw2LD8oSAYzoq6LKO4ELgQpQAsr3lwEs0AHuivAJ4GYnirAosTDVVPbNB8QIMYJFEQOogCgkAgYcL0IVnBWMQAQEEEDhV6PKh1lUAF3AAsL3lwIBGASuErhK4T3AhzlMASPgDKC8KMeLsAbmOpFqIqRGiAoRvdoIH1ZVBLkOkc+BtlTJAOH7KwoUCnWFa0F/1iAfAnYo8iUj0C5hrhOxBiIvzPEinIGZVmSs7mikltzrmMb4C14VK/LpzMl/jSooiio/EAIoh1lzm4a4UHp9B2L+ixhzs7FyqJ0HDrUijQwK5QU5XoQCWSLsX/B4VVLLOme5IkFma6l8bteMZyFXnAFVfiAEKKMyVLFsHE0+t6D+Z6Lq5WUI61oFh6aagSwRFOXFOJ5LVDEBVBREQIBmrrQKH8fqUl037EisTD455af2zgayRAz/BqZbPhYhTm1ZkUwWQYcnZ31tuqVExVQsCKAKQcGACERA6eM47OL376Dn9vdsfFVQ+bHExuGajXlQE30UnIFhFykjLe/ZNNOCoKxpdsL7hjOdz1IZUEX5ARJBCqMLC504uHeONRbwPvxa1fFMYqj7aPAqZFapuWjKIEkRzbyFGy/54M5/vP23N9Ij235nAxe/bwfb3rvh10KUD62oe1bXAzUX2d9K2LlQYVWtYF29IAoUAULgiMSAsaAKKD9YAkYgBCgjR1gLqQWjsLuVMtlO2TDQZbxe0vaGAy3LVMthjb5HMvkwBmTbb26sqfI6X/IXGwc9FafF158Zaj9wsF5/2fhCcuX6Ge6ZbHDH3iESqyQ2goICAiggHCb8YCkoIIACwmECZTCUQbhoYo7zVzW5edcId+0fKM9Z2Wr9yKa5WreUdNe8wyT8tFj+t5NS34nKKzcMlERM+av/vL779acHk0OtzL7rfM9PnbaHHdtH+dSDa2i4yEASQDhCFQRQDjNCjwEcMC6RrRI5UQKrRFktygBKFcUJeIUOwizCQQz7VHgsWp5Sw5QKAVD6REUABURYpLBQWpreMFHvcNUJbe7dP8Gn71ljx+p5csuuoe77LtrNuqEy3ddMrhXV9U5Ez64ncctINfLJ+1ctXP/4cH3LUJE1UqgnQDBYA1UHFQeZAxWWEQSooJwngbMlcBqBhig1IEFJWUY4TFkLlARyEV5pPHMqPIzhfnU8oJbIIrUCKP1EoVQIgDVAMNQT2DiSm7rz9S89PlxsGeq23nnu/nS+iFvaJec4MVLW0ujnc8ed+xoVZyRJLHRyixjolJatg12uOfUAiUQyq6hwmLJk0Fu2Ni1bmpZqEJIoCP86AqRAijKAslpgqwSukoKWU54YCGxveHKjKMpRgijkQSijsHWoS6e0iEAnWIYyT2LE3bmvkV1bOOou+K53pTNCKFW893DOylZtMA3UXMTZFpdOzJMHS0Q4c7RJNQkIggICVHLL6skqYzMpzhtE+b4wCpkKWSGcPy2cvWA4uCLnwMou3kV6FBBAUTqlJaiQR8ula+fZ28rwEU4Z6ZjNQ91auwRFvBGCU4W5rsUZeNe5exlKAkWE6a5jMAs8M1/lg/dt4pmFCisrJT0OuALPG2PJMIrw/BRQQAEFlKMEEEAAw/EZFbLCMrG3htvb4K9syr9g8MoRAkx2EjYOdvnYJY9z/qp5ThxuM1rxpAbmSsvO+Qo+ghHFcVhiFGuEhw/W6ASDEdg02OG7szU+cPcm9rVS1jcKBJjQyJuD56wYeD4RKBA6Ak+JYb8Y9olhVgwdoARSoK7KMMpqjazXyKYYSVFSQDiWAcaJvCt0ud06rreOgyIIsH6gYPdChXfedhK/+dJnWNfI2bZ3iKhQtZHRakRQgoLjsMHUgwi/dccmbtk9wnAW+fAlTzDZTnlwaoBzVzcZcIETS7imKBjl+EqgKcKD1vKgNTxuLTkvRAABDD114NQQOSsETg+Beow4EZa72JdsNIHrspSnjJBJZO1AwX2TgzxyqMbBjuNXt53IXG64fN0MH3vFM6DKTO5wiqKAAokRMqdkLqIKA2lgvF4iUbgoj7zZBwzP5YFDImxzjm3OMS/C8xGOpRzVBO62lrutZaUqF4fABd6zMkaEPiKsU+VdRcn/co7vOIMqrKmXNNKIqpC5SCUIiREigqAo4FAhKqDCQBIYq5QMZZHUKoUqVuCKUPLTwXM80yJsc45vOkdThCVCj6IIPVGFqAblWAIYiRhRegQFhIMifNU5brGWHy8KzouRhir96jHytqLgMyTcKSkiYI2SWmWs4nESGUgCGkE5TBVHn6gQVPAqKIcpvNYUXOsLVIR+CjxgLf+QJGw3hn6Coip4tXgsQQURSCRgiAiLFIgYupqgEawojoCTiIiiCLMi/HmW8XCM/GhRsDlG+jngl/KCIrV8nQQUFPAqBBWicpiyxIGySFkiLFox53ib6YAKy6kItzjHdmNYJBiJqEIRHaU6jEQarsug61K3BRXjcUSMifTEaPAYutHRCinzvkLTVyhiQiKe1HhEIKrhPmPYmWW8sSg4PwT6ORF+0Rc8IQlLhONzCihLFEEAoZo7Tt1Tw6qiPJdR5fVliYjwsLVYlEIdnZhQMSXr0hlWpgs0TE5qPFYgKgQxiCo96gSrESMQFIroaMaMg8UAB4sBmrFK1ZSkEggIh0T48yyjXRS8wnuWKFDXyC9Liz3BQBIAQRBAUeUIBRwKKIuEIwTYvGuAincoz29DjPx0nvOFLONuqSAo67Np1lWnaZgCBLwacnXEKAigCMoiAQRFASOKM5Ex22LMtVhXmWZ3Z5QDxRBttWSmRIC2CNcnCarKZSHQb6tEavuq7Nhc8izhKAWngHKUAD9CyfCcQzmqAGZFWKGK4agVqvynvMBWIp3BaUZck6iQR0fAoDyXcJQiKBBUCGooAEukZgpOaexntW/yVHsFc75GZkosgbYx/E2aMpLnnBUj/dZMZ8yPpvQIi1SACAoYehQQjhgU5WrNUY71hDH8cZbxz86x3EqNvKXocrovyIOjGzMChh4BBBCenwACCIsChm7MyINj2C5wZmMXE9kM3eAo1WFQ2iL8ZZYxaQz9BFi/t07K8RkFFFAW/azNGRKOMWMMX6mk7DSGryQJD1jDco1guHR2mLV5BijPRwEFFFBeiBIwdGIFAU6p7WVT5RCdmFKow4gyJcIXkoTAseptx49RcDwGZVGEwQCXm5J+Hvi2WHaI0NMU+Gxa5S6TsVwjGK6cq7MhT1hOERTBAAbFoBhAERTh+Sm5OgocJzf2saU6STuklGoRlIes5T5nUY51KZ6GKKqgERRQBUOfi0rLIJF+u9Xyty5hiWKY1ApfrUd2VbssV4+GV87XWV8k9ESEnsQEqqakaguqtqRqS6q2oGpKEhPoiQjHY1DymJDHhFPq+1mTzdGJGYqh52/ShJJjrSHyQ6YEhH5GAVXQKJyZK0aEJcEo/ygVOghL8uio2y4bGvu4dXSeZ7KS5RrBcOVcnQ15QsV4aqZAVJkLVfbmI+zormBHdwV7u8PM+QqCUjMFFePpUZ7LEunElIDllPo+GjYnjwk90yJsMw7lqApwqfH0KKAKCjh6VEinqhjlGKWNfK1MGKCkJ6iAwAn1GWq2ZKpIuHFgjqt0kC1FSr9GMFw5X+OfRLmbKgfLIVqlIQ8K4gAhseBMpCIFK9MFxrM5qqag7Q1BBaGPcJjSDFUGkw4bqwf5bnM1QQUryt+7lFcUHsdR6yWy2QPKsxwKoog7VCVRnqUCU4OBTlcYYFEgYTQrqLSf5vFnDlGKkDjLdSq82W3lFDNCv3qwXDIzxPcqQ2wPyu5dT6GhJHGWsiwZHVvB6tUTNEvHbKvCVBhhNN9OnH0CYwwqwrNU8KVHrEUn1rJmIOdA0WGmqJISOSjCfdHxMuNZMiaRzUEQFVQUFJwC0nXOzqcIRymRyeECJlkkBmsEO/0QRdLm3CvfyMTmrVjrQIVmjBz6xj2MTc7Tb1iVa7tz5MFz8et/nK0nnkSn0yXGwK23/BN79+5jdHgIL4b985FkzQW86fXXUE0inTxiBMQIRixFt83Tj93NQ3ffxppVI0zUBpgrqiy5hYwL8CiLLLA2gOSWWIko4DjMzWZVKQ39goO5mmeR4tURFvawfkWN//zr/5MzXv5altO3lky951fo3nUP/UZVeXuSsubVr2HsiitAhJ4tm7fw7nf/MlmWUa/ViK0pLnzpa3jT297NC7nxcx/khj99H1XZSyNpkAeDCjykjiggyrOGouDmMkJWAIpRVcxCpSre0K9V8wRRekSEwgcGpMkbfu5XOOPlr2VJDJ7gS3okSVjx4Y8SX3Iuyw2FQP7pT9O54w6WvOTcl7Bhwwbm5uZQDhPBOZ6loaA5u5+ZqX10Wwss+bFr38ulP/mL+NYkDeYJWARlFqFZCfRrRMUspCiCqmAQsB2XSBSWRKBZ8xwhEBG0aLNhYoxTz7+CJTd94RP8/lsv54O/9MP8ye9cy6EDuxDn2PCRP2T3ypUsFyYnOfSRj7D/ppvoWbVqFSefcgrNZpMQAiKC94El99/xLX7rZ67kD9/+an7vrVew7e+/wJKTz7mUtFKnEmexokQVVISFSqBfVcG2HaAgiuEwUxhHFJYo0E0DPYIScZjYZXSwSlJt0DM/vY+b/uJPuffW2/nu/dv4hy9+kScfvoMeqVR4+MoruSsEltMDB5j7+Mdp3nYbaZpy+hlnEEOgLApEhH5P7Znirm8/yp7HH+Web93LbTd+DlB6agNDiE3JpEtqPEENitLJAv1SBcktS5wqSGksy/gksiSqUJFAaiIalZ6yDLikYMWaBkMrVjM7uZeD+/bSKSEWHfbPTHNdUfBO57goSehXa7WY+fjHsc7xknPOYWBoiHanQ4+IsGQhVJjF4YzHOajUGoDQE0NAYyRBSSQS1RCBIuEYAog3qIIqOA6TIIY+EfCOZyngTMQQUBZZY0jSFBCyrML4mnG+/OXr+cxX/oWEnHZzHtcY4JOzM2zasoU1u3ZxjMlJZj/2MTa85S2sXbuWZ55+mlqtRr/TTjqZN1x7LZuGcjAJF77mp1jyxMN3keddakN1bOlRFnmrLCfBsMTRoyIsE0U5SrAoBmU5RTECJkmZmS15avpparZkeGgI1YivVOi8+c1U77yTzq230s/v24e77jpetXIl/+1736NSqdDvgvPP5ILz/4Tlbr7+M3zpU7/LxLrV1CoVTBFRFgVRlpMoLHEKqFEVjhLAqADKEcqzlOcRQTEkzpE4ocd7z4b16zn5ZS9j5NJLaTab2HvvpZ/fv5/XDgxwX63GvXmOiLAkxEhZllgiPUlWpWfTKS/htAsuZWrHI3hfgggoR1gVllNRFFDAcJjaGOkjQOKFZ4kSAQWE4xHQgAkd0jRFxJDnOXmec/KppzI+Po4dGeHRCy9kW6fDctnCAr88MMBp3oMqS77+zW1cfdVl/MFbL+F9P3UuX/6j36Zn6xkXcPU7fo+0UqPTaoEYEBAgKXkOdREUUDAoqIsB4RiuFPp5tSiWJTFGQghYl1B6z+TBKa5+0xu4/st/zec//3kuevlFTE1NsXHjRpacc/nlnPiRj5CfdRbLjYnw3pERVh84wJLd+w9w7+338fTD9/HQXd/lG3/9V8wc3EXP6Or1DI6uwnuPj4IAAqTe0C8CMYkooIBTIGah1JZWRYUeA9S6DoY8PUagjEKQBOccR4hn5mDJof0zFJ02U/siGzetZ8PEGDDGxk2bydKUk088kSUTExNMTEwQzz+f6Q9+kM6tt9JvlXM07r+f7p13UrnwQoYyYcMoVOs1qt02xIKy6NKjMSIilFi8WowoBqGWG/oVApIFljgFfKUsnK0gUegRoNax9ChgCESTMdvK8WWXntFVm7jkqtew7cY/I6nUOOuSrUxsPZsle/fsYd26dZx2+un0tFotbrjhBjrtNgMDA8xPTHDZ6aeTPfII/WrdLtMf+hCjv/EbrKpHVjaGKEKOSzPOePnFjI1voKfotsnbcxSaUqrDEhEMgx1Lv45AWvMooIDjMD9YdnUqQmlYUms7XBBQwRLQpM7O3Tt55pG7OHv1Fnqu+ZVP8Npr3k3pC4bHVlNrjNDT7pbcceedbNy4kdGxMXruuece3vrzP0+lUmF8fJxHHn2Ua66+mo9efDGd22+nX5icZPoDH+C8d76NT371RqI6rDOsXLsVazN6dj3+HVozk3RkPV4NVjwrUWq5pd+CgeFGlyVGFIrBTicmgX4uCqNNxyLFuoTpjuXGz3+KyV3b6bFJwsq1W5jYeAq1xghLPvvpP+C+Bx7mP7zuDRhj6Hnk0UepViqccvLJrB4f54QtW3hixw66b3871YsvBhH6hclJWp/476yeg82nnseGk86lWh+kZ9/O7dz0lx+lCJC7FagqInCOeESVfjMG8oECVVAFF4GYhOAHc+xChmGRRGH1bEKPqpCYQDm4nocfvYc/fu/rOe/V1zC2ei0aIhojNnHkRZfH7riJO75+PS87+XR27ZvhG9+8lfbCLLf/821sOeEERkZHUIVNmzYxPz/PF774RV565ZWMT07S2L6dfuHgQfb/zm8z9aOXUZy4GWMNk7uf4tYb/ozm5FO4Vaex0K7ixFOqcLkUKMISD+yysCYJLJGb373uuqE0vCydqZ1afWg1FeVZhVOuyYdJap6qi3Q0Y7WbZrx4lE4ZMS5FFFQBUWKMhBgZHRmi3hjmgb2WJ2YcqjA82GBwsE70JapgrSVoYHp6lrzwJDbj/fWUs6NnuXnxfM3u40nbovQliUtYOTbCk5017O40qNuSFaXw+3kLEWHJPjV8eSDwpvN2APrYXGH/xQmgQD7SITcwHnhWEoT/KF2+gqPHqOdQGGTN8HpW6jwLucUKRyiKiGCTDGMdZZFz0lDOSFphfzFC12XkpRDUAYIEQcSS1YZI04KhNOdrA7MMNRM25Rn9BtVxVZzg5sosTzcCQ1VlrqwymVdxEun5kViy3E4se2xAWSSAixx1b6K8JgiWRaJwmSm5RS1dwEqkGxJ2tFdwzmDOoDV0g8NIBARQejQGCizG1dgwFFjLLPO+zYyv0vEZXi09TgK1wYIR16GR5Fj13OQSXj1r2JIn9BuIlis7I9yeNtlDm2c6Y+TRUTElE1G5wJeICEs6CDfHBChYEgGHKqgAyr2pcmHXMIayZJjI60LBF5IEARIJTOYD7OiMcGLtAF6reDUYlH4CKNCODieBEddm2LVRBGWRAIIiQBEthaaIKN8YbvLq2Qab8oR+A8FwyXydvy3rTBaDZCbHAG8qClKOtQvhtphwDgqqHKFgQIBIT0uEr8WUfha4IAROjZGeRAKJCXyvNc7efIQh28YQiQjHIyheDa2YkavDqyGqIarBqyFXRytmeDUISk8hyj8MN3mqUrBcw1te1Ux4CV0SCVwcAqeESD8V+LokeBQQFimgGFAiEOlRvhwyDqjQr4ryhqJklSogVE2JIfLgwjr2F8MMuS5OIopwPAIYIlEFr5ZSLaVavFqiCoaIcKxClJsHWzyVlSy3UiPXlB0uC5GfKAqEYzVrBd/CAQIoEYgsMizTQrjOpCy3PkReVxRUVFGgYXN6HmiuZ08+TMN0qZgCBRTheAQQFEERFEERjk8Ruka5fWSWnZUuy62JkZ/Jc0ZUOYbAjvVtlOMzKKCAAsIR31bH5FiX5c4LgTcWBRWFiFA3XUSVh5vr2N4Zx5rIgOtiJaAIiqD86ymgCIpgJTDguhTO85eVhLtsyosR4JlVOQv1EpRFAiiggIKLgAKGwxRQjtg10aLWdDRyxxIDXBoCUhT8dZrSFaFqSgp1bG+v4lBe44TaQcYqTWIUipgQEKIalB7FcKxIjyCAkYglkpoSY5RD3QZPtlcyHRrsTQtaXrmsLLEc3/3RMruyQ8b/pYCCABGIgFFAAQWUo4o08tj6Nh0xCEcZ4BLv+YU8Z1QhIqTiadicGd/ggYUNPLSwlpmyjiVQkZKKKaiYklQiRiJGFCOKkUgqkYopqZiCipRYAjNlnYcW1vLAwgZmfIOGzclN4G7n6BjDcgJMGcNHtU4wSj8FFFBAAccLmK8FPhRq/CbzOGNYYoCzQuBdnQ43ZBl3W4tFGUy65MGyrzPCoXyAAddl2LVp2C5VW+JMxBARlB4FIoYiJHRCQjNUmPU1FnyFIjpS46m5EhReUXp+2HtqMbLcgiqfchmTpeWFKOCUF3anJnwqq/IOn5NwrDWq/Gyec5Yx3JBlHETITCAxgVIts77GXKhiiSQSyEwgEY8IR6hCqY48Wkq1BAyqgpVI3eUYYEOIXFUUnB4CKc81L8KnKxlPq+Ffw3GYApFFAhjhCAUUeMA6PmOVt5SewRjpl6lyYQic2e3ybef4trXsMYZEAokEFCGqUKij8A7IUBF6RJUjBAxKKgEjigCbY+SVRcHZMZKqIjzXpDH8jzRlpxXUKwgoi4yAAAJEFgngRAEFjBJUKKKQByEqhykIIPCQtXxCDG/JczaoIhwlQCNGfjjP+SERvuMc33GO7xrDvEAUJQIqHEtAAAMYYEWMnBYC54TASSEggPBcEfieMVyXZUyJYFAEEEBQokIehCIKXgVEIQIKTgEjgApTnYRdzZSB1JIHQ7O0TOcJE/UuhshOa/lkpcLry5JzQ6CqSj8RwQHnes+53qPADmPYawxTIswZoS2CBxKEmirDMTKukfGorIuRF9MW4VZr+bskIRdBBCwRZwzTecJCaUGU3c2MhcKyeSBBVBBRepwCnVIQEa7aNM1LV7dInLJ1uMvTcxVSCUx3E9bUu6jCnAifTVMeCIHXliVrYiTl+ATYFCObYuT/V1eEHSJ8NU3ZbgxKH4HpbkoqgeEssGWoy9vP2kPphVXVnI4XUIiAE2ChtDgRfu7MfYwMeChhtpNw4lAbI9/jd+8+iQcPDTGSliiCCHwN+Bbwo+RcTsEaAjWU77cFhF1YvqkZN2uG73KYooAqCMpMkVC3JX9w0eNcuWGGzEQuXjsLCcwsOO7YWcOrklrFiUItiYDhhu1jdGJCUEiMcvnELFdtOsR8+TS7WxVGkhIV4QhlkcCDUZhZcKxbcAwUQtULRvl/FgTaSWQ+VXYOenY3PKsE3sxhyiLhCFFltkxYX+9w1cYpDnQq3LJniDIKVqBqStbV26REfBBcBBl00USFzz42Xj4y3XArq17mioR3nbObnz99DxeNT/PMXA0RsEZBARFQEFGOGIODQHshpbaQUFtIcaUhKQw2GEwQnk9wkWAVn0bKNNAaKGgPlHTqJQ3gFI5SFRBAFQRCFFRh81CXiPC3T63g4w+sYygtOdh2evrYgv/ARU8mRqOZDVZcVLIiSjqclayu5wv3HxoaGMk6SddbZrqOkUrBV59awQfu3UzNKfUkoBwmIAqC0M8AFlhJZKNGTtDISpQxiTRQKqpYoAS6IiwgTAbHoWh40lt2dAzTc0IAlOdSFBVAQYBWaWh7w6+f9zRnjS0w03VkJjKSlextZ368Vi40bDk6W9g0KplDdL5VSmu0orx+y4H0O1MD3acXqiYP1hobwUV8tBzqZnRdoIgGBURBBBTheA4AD/P9JyiqoAICNAtLy1uCGkgjxsJc6egsVP1ErdN9w5b9qRWlVZoWovMuifxRQA7tbWdnnDnSbLz//Ceaf/XkxNxj042Bivik03FkpuSM4TmqLlJNIko/5d+WsESATmnoeEMmnk7bUZGCVZW8PHW0Of+mE/ZWTh1t1ve2Moj8XSL6JfnGO9aiMJKL3FBN9JKVlYJWYZgvLCGCj4IxihMOU0D490UBwSvEKDijWAODaaCWRqbylG4p29KoPy4w4xRQmEnQnyy9/MaBTvoTNRPqY5WyO1+aONdNqNjIYBJRICr/rhgBAeZLQysYGolnMIkmD7ZyoJ22NMpXHfoBFWZQ+D92qVkNBRqqmAAAAABJRU5ErkJggg==", + "bpp": 32, + "alwaysBuild": false, + "lvglBinaryOutputFormat": 3, + "lvglDither": false } ], "colors": [], diff --git a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state index b355fbb1..7088f5da 100644 --- a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state +++ b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state @@ -21,7 +21,7 @@ }, { "type": "border", - "selected": 0, + "selected": 2, "size": 71.5, "location": "right", "children": [ diff --git a/ui_design_800x480land/assets/amp_disabled.png b/ui_design_800x480land/assets/amp_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..400606cfde95a367d65c249b91dd391f2f2eab8f GIT binary patch literal 8879 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 Tn}<(+eNv(TJJ;);>zE{xiS8k=5SWRH>5#r2 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 Date: Tue, 18 Nov 2025 16:53:56 +1100 Subject: [PATCH 21/34] - new method of handling web page. Images are no longer embedded in the html, now requested from controller, which has a full set of effect icons for Tonex and GP5. Also added favicon. All web files moved to web folder. --- source/main/CMakeLists.txt | 19 +- source/main/web/amp_disabled.png | Bin 0 -> 6787 bytes source/main/web/amp_off.png | Bin 0 -> 4579 bytes source/main/web/amp_on.png | Bin 0 -> 6021 bytes source/main/web/cab_disabled.png | Bin 0 -> 7089 bytes source/main/web/cab_off.png | Bin 0 -> 4677 bytes source/main/web/cab_on.png | Bin 0 -> 5964 bytes source/main/web/dly_off.png | Bin 0 -> 4688 bytes source/main/web/dly_on.png | Bin 0 -> 6237 bytes source/main/web/dst_off.png | Bin 0 -> 4705 bytes source/main/web/dst_on.png | Bin 0 -> 6291 bytes source/main/web/effect_icon_amp_off.png | Bin 0 -> 762 bytes source/main/web/effect_icon_amp_on.png | Bin 0 -> 762 bytes source/main/web/effect_icon_cab_off.png | Bin 0 -> 1427 bytes source/main/web/effect_icon_cab_on.png | Bin 0 -> 1427 bytes source/main/web/effect_icon_comp_off.png | Bin 0 -> 844 bytes source/main/web/effect_icon_comp_on.png | Bin 0 -> 844 bytes source/main/web/effect_icon_delay_off.png | Bin 0 -> 2313 bytes source/main/web/effect_icon_delay_on_d.png | Bin 0 -> 2662 bytes source/main/web/effect_icon_delay_on_t.png | Bin 0 -> 2247 bytes source/main/web/effect_icon_eq.png | Bin 0 -> 998 bytes source/main/web/effect_icon_gate_off.png | Bin 0 -> 1135 bytes source/main/web/effect_icon_gate_on.png | Bin 0 -> 1135 bytes source/main/web/effect_icon_mod_off.png | Bin 0 -> 1394 bytes source/main/web/effect_icon_mod_on_chorus.png | Bin 0 -> 1908 bytes .../main/web/effect_icon_mod_on_flanger.png | Bin 0 -> 1378 bytes source/main/web/effect_icon_mod_on_phaser.png | Bin 0 -> 1568 bytes source/main/web/effect_icon_mod_on_rotary.png | Bin 0 -> 1790 bytes .../main/web/effect_icon_mod_on_tremolo.png | Bin 0 -> 1813 bytes source/main/web/effect_icon_reverb_off.png | Bin 0 -> 381 bytes source/main/web/effect_icon_reverb_on.png | Bin 0 -> 5250 bytes source/main/web/effect_icon_reverb_on_p.png | Bin 0 -> 1455 bytes source/main/web/effect_icon_reverb_on_r.png | Bin 0 -> 1636 bytes source/main/web/effect_icon_reverb_on_s1.png | Bin 0 -> 1618 bytes source/main/web/effect_icon_reverb_on_s2.png | Bin 0 -> 1788 bytes source/main/web/effect_icon_reverb_on_s3.png | Bin 0 -> 1815 bytes source/main/web/effect_icon_reverb_on_s4.png | Bin 0 -> 1713 bytes source/main/web/eq_off.png | Bin 0 -> 4349 bytes source/main/web/eq_on.png | Bin 0 -> 5756 bytes source/main/web/favicon.ico | Bin 0 -> 15406 bytes source/main/{ => web}/index.html | 8935 ++++++++--------- source/main/web/mod_off.png | Bin 0 -> 4569 bytes source/main/web/mod_on.png | Bin 0 -> 6103 bytes source/main/web/nr_off.png | Bin 0 -> 4190 bytes source/main/web/nr_on.png | Bin 0 -> 5588 bytes source/main/web/pre_off.png | Bin 0 -> 4332 bytes source/main/web/pre_on.png | Bin 0 -> 5403 bytes source/main/web/rvb_off.png | Bin 0 -> 4818 bytes source/main/web/rvb_on.png | Bin 0 -> 6633 bytes source/main/web/tc_off.png | Bin 0 -> 4983 bytes source/main/web/tc_on.png | Bin 0 -> 6891 bytes source/main/wifi_config.c | 357 +- 52 files changed, 4795 insertions(+), 4516 deletions(-) create mode 100644 source/main/web/amp_disabled.png create mode 100644 source/main/web/amp_off.png create mode 100644 source/main/web/amp_on.png create mode 100644 source/main/web/cab_disabled.png create mode 100644 source/main/web/cab_off.png create mode 100644 source/main/web/cab_on.png create mode 100644 source/main/web/dly_off.png create mode 100644 source/main/web/dly_on.png create mode 100644 source/main/web/dst_off.png create mode 100644 source/main/web/dst_on.png create mode 100644 source/main/web/effect_icon_amp_off.png create mode 100644 source/main/web/effect_icon_amp_on.png create mode 100644 source/main/web/effect_icon_cab_off.png create mode 100644 source/main/web/effect_icon_cab_on.png create mode 100644 source/main/web/effect_icon_comp_off.png create mode 100644 source/main/web/effect_icon_comp_on.png create mode 100644 source/main/web/effect_icon_delay_off.png create mode 100644 source/main/web/effect_icon_delay_on_d.png create mode 100644 source/main/web/effect_icon_delay_on_t.png create mode 100644 source/main/web/effect_icon_eq.png create mode 100644 source/main/web/effect_icon_gate_off.png create mode 100644 source/main/web/effect_icon_gate_on.png create mode 100644 source/main/web/effect_icon_mod_off.png create mode 100644 source/main/web/effect_icon_mod_on_chorus.png create mode 100644 source/main/web/effect_icon_mod_on_flanger.png create mode 100644 source/main/web/effect_icon_mod_on_phaser.png create mode 100644 source/main/web/effect_icon_mod_on_rotary.png create mode 100644 source/main/web/effect_icon_mod_on_tremolo.png create mode 100644 source/main/web/effect_icon_reverb_off.png create mode 100644 source/main/web/effect_icon_reverb_on.png create mode 100644 source/main/web/effect_icon_reverb_on_p.png create mode 100644 source/main/web/effect_icon_reverb_on_r.png create mode 100644 source/main/web/effect_icon_reverb_on_s1.png create mode 100644 source/main/web/effect_icon_reverb_on_s2.png create mode 100644 source/main/web/effect_icon_reverb_on_s3.png create mode 100644 source/main/web/effect_icon_reverb_on_s4.png create mode 100644 source/main/web/eq_off.png create mode 100644 source/main/web/eq_on.png create mode 100644 source/main/web/favicon.ico rename source/main/{ => web}/index.html (90%) create mode 100644 source/main/web/mod_off.png create mode 100644 source/main/web/mod_on.png create mode 100644 source/main/web/nr_off.png create mode 100644 source/main/web/nr_on.png create mode 100644 source/main/web/pre_off.png create mode 100644 source/main/web/pre_on.png create mode 100644 source/main/web/rvb_off.png create mode 100644 source/main/web/rvb_on.png create mode 100644 source/main/web/tc_off.png create mode 100644 source/main/web/tc_on.png diff --git a/source/main/CMakeLists.txt b/source/main/CMakeLists.txt index 1c4ba43a..d230a123 100644 --- a/source/main/CMakeLists.txt +++ b/source/main/CMakeLists.txt @@ -1,11 +1,22 @@ - idf_component_register(SRCS "platform_pirate_pro_169.c" "platform_pirate_max35.c" "valeton_params.c" "midi_control.c" "control.c" "footswitches.c" "CH422G.c" "display.c" "main.c" "tonex_params.c" "SX1509.c" "display_tonex.c" "display_valeton.c" "usb_comms.c" "usb_tonex_one.c" "usb_tonex_common.c" "usb_tonex.c" "usb_valeton_gp5.c" "CH422G.c" "midi_serial.c" "wifi_config.c" "leds.c" "midi_helper.c" "midi_helper_tonex.c" "midi_helper_valeton.c" "LP5562.c" "platform_devkitc.c" "platform_lgtdisps3.c" "platform_m5atoms3r.c" "platform_ws19t.c" "platform_ws43.c" "platform_wszero.c" "platform_ws169.c" "platform_ws35b.c" "platform_jc3248w.c" - INCLUDE_DIRS "." "./" - EMBED_TXTFILES index.html) - + INCLUDE_DIRS "." "./" + EMBED_FILES + "web/index.html" "web/amp_disabled.png" "web/amp_off.png" "web/amp_on.png" "web/cab_disabled.png" "web/cab_off.png" "web/cab_on.png" + "web/dly_off.png" "web/dly_on.png" "web/dst_off.png" "web/dst_on.png" "web/effect_icon_amp_off.png" "web/effect_icon_amp_on.png" + "web/effect_icon_cab_off.png" "web/effect_icon_cab_on.png" "web/effect_icon_comp_off.png" "web/effect_icon_comp_on.png" + "web/effect_icon_delay_off.png" "web/effect_icon_delay_on_d.png" "web/effect_icon_delay_on_t.png" "web/effect_icon_eq.png" + "web/effect_icon_gate_on.png" "web/effect_icon_gate_off.png" "web/effect_icon_mod_off.png" "web/effect_icon_mod_on_chorus.png" + "web/effect_icon_mod_on_flanger.png" "web/effect_icon_mod_on_phaser.png" "web/effect_icon_mod_on_rotary.png" "web/effect_icon_mod_on_tremolo.png" + "web/effect_icon_reverb_off.png" "web/effect_icon_reverb_on.png" "web/effect_icon_reverb_on_p.png" "web/effect_icon_reverb_on_r.png" + "web/effect_icon_reverb_on_s1.png" "web/effect_icon_reverb_on_s2.png" "web/effect_icon_reverb_on_s3.png" "web/effect_icon_reverb_on_s4.png" + "web/eq_off.png" "web/eq_on.png" "web/mod_off.png" "web/mod_on.png" "web/nr_off.png" "web/nr_on.png" "web/pre_off.png" "web/pre_on.png" + "web/rvb_off.png" "web/rvb_on.png" "web/tc_off.png" "web/tc_on.png" + "web/favicon.ico" +) + if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_43B OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_43DEVONLY) target_include_directories(${COMPONENT_LIB} PRIVATE include "ui_generated_800x480land") diff --git a/source/main/web/amp_disabled.png b/source/main/web/amp_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..c9bf96874729ce932f3e63b5c46637aacc16b2f8 GIT binary patch literal 6787 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 VCv_s``}W^NriNAq)%u>%{{zMBjq3ma literal 0 HcmV?d00001 diff --git a/source/main/web/amp_off.png b/source/main/web/amp_off.png new file mode 100644 index 0000000000000000000000000000000000000000..7bf6c975b58acb0a5acb51455a609a50f1447615 GIT binary patch literal 4579 zcmb_g2{@E%`yac8tmTuF3>7J}kHMgf2-V=&5+!5i9W%_Bl`$ekC3TW$RoNpYhq9-p zBC?Z&tO+4Y9fXAcXuH1Ue9LvN|6JEQ@AE$I@4oNf@4oNnd9Le?cC@!y4b}jIK%muj zwpLD}J5+QT%1Vp=Ta$d~qT4E#?S3u@B&WJ^iGdQXtAjw&(KHu#o;zVLj>KfZh-9V@ z01IZYL}(DmY)3GQNb(1G5Ffyo7GSP3`9P=xp^?pX_8Afo1lCS~O0x~&0L~%yE~F5D zk_lO7$99NWFizxv0q}^BU2C!})wZjE{yfIlgeDiHXT~A0h;lD+u5bgP{T3jXykC0bCM?#^TYK0gx4s zL?31#&s;~u^_vI=>!;fQ?)OBAQU(tuvfxM2IFT4F3&nhB;$KR{uIr15wHNb6ToE# za!7!6kcj5S6*Vl}P7XliF*z3HN%ymRn zGlU`$P?Vty5{om$;?O4BkVqT?@eN8~l4%sdKS7OMkR~{^F%I#MP*Ky6i9F(e1(QiQ z3X{ViiUiXbL|*{T3h>o|{7fTmCzHq5O8(@Tplri1lU=b>xeYNXf!g; zhls?I$RrVW1d4@ z8l#MmPz(j*10^ESXea`MG(n)qXk!c!`NQ6ULldnnBKSy^!_ErGM8aYe-vd|wgH z0Q>uhPJ?{y0vwUF(%t4dq?NJ)A_d>3X@8P||4qR+dp;EqIsFgi{s!YRDLg)r1K@o{ z+4`^T1pjyBxx}FVOr3;9V*nHeElN2B12x2AjG)Fy5)q0d8Iu5v3B?GB_W2?GU#T16 zkcK!k_D84w73$y9N}>`2d;!sB3D^1SV*a;I{L?!8>stE%69Zq_A-{DP{GXfe>$|_( zO+|(LIwjhoSB5`N2hqdN^92YH<%uIYJ*H;{6hx;J$j%DyLhWfy@T9x6tvxy0?pw*1 zD6CSFuk6A@PV9*|9(f^IvS9QVMc3BY($SqS^3w-W92hrk!-n@<+@7B0;(FW4dEf1= zYiCwpJQIvp7dMnI3U-m5ohOX<)c;A_5*v$>CB*|E|Ks9fKHFR7KzdQ4LL0b>H zr|03}`mV0))s2ltCr+HuT?6j$1<%ICsi;O<)z#I>_l~MWS2PZ^D4-8f)ls$ZRVAET z&#%;T7A_tLCr)H#>7%h&3Wqc1d-$?R{qyIi9`18-QD?4Gy%B4l^!%Z-^zz>jNGJ4lAv0*r1`Ip=wQ6`9SgU>31zjc$O+< z2OiWd>D@ZDXe#9a>NsuO=`i@|SZKD2Be%vit7`C|*y|HI0)c?7tlMjrsRPoJ+PNV{ z_wAB<R3unhSp8e3Ibvk;xu7{Go%ak2>!1-NV5H;DNAbSnF z;8DBjtodXdcfdbAF64Nv(T+8D#geulbSIbltkatPkd2KrNv4dnbn>zBWTIXqS7XN< zeez4#+F(b#?4!Hxc~7%F3TpN`IH+C<*LEBEFfeFTf$@*7ij0gLYEHA!9pSAjm~maZ z9O_sk6!y|z=T}$ye*E3=MMi^ava;A!i#t^HTp#dM+4}MQU>EDRed77v*H!V9GIs;) zX1}DCllTk4${q?Y3j5h}iVZZj7rcNz^{ZH^MWn@pn0psy@x2GU9!%-pK&_6i4TqnS z4v^T?iqD_$knGVe-lfjSOu4}Hhzgm0_mr7$e;D@1FBAD`4jC4GKy(TvG_=b$G(S>l z!=62Roa3vX#%ieBP*5|g%QUq=D5@!pX6IBKCPdWK)HqqHNV*tTI;DuS=Ls2sAjGQK z?gxC&Oe&3r?3YlJJR|0HaQ}W<;`T7V($dmw3lL?dtB`T6wd>*GS@#iocx7h^H*+;f zQ&Te|GqXzECiv;=OHj{jN5u_hxyFtjN)l#9x}|0$%jn*r;pVg;6-*(scRTlw0Xw-k zT<=7$km={|U*B=xw|=~{h!JvltQ{$*^d@MmojCgb{oM~yiduz>!wxs{K!?1%0!Bwi zvt5FROjC%Y$H5ZL%~n4G;cWer5>QdlxJOG< zlQ)*$9{Xau?$A}X`nkMYT;kc$Q9thcSJ3t%W|u1{%;`BKx}PQa?X}m!{*5)=|Ln}Cn47_h#-9rc3ifLt z)E4tp-0;S)iR&aEzh06Z0Kf#E_}pOakA9*M-K4Gs3((U+iW7del@HBY%C$>%q22@no{*?BqO+1ryqqf};|3DsozHh!VSDNI^%P2k&t%ez=? z@nY+=XDUg5%VIpcxJ%L1{8(srX`tNjM ztMAmZ!)B=A!Mb_Wc#d$aXzzo>n-w#gZw%tssjORjS~e}Z?BwQy`q5?yk6TVMt5x?c zc*R4yZx)}JES0MXF&H}ZXwm7OT=S}qXCJcXj}L7*dNaqnm}*0`Yby+GlW$0>iVy$b zHTBDm7>xY`|FT{>^-3td#Tj$^YEmWlQL{9HKp28+();EL`;B=cN<;$Kjn?^Q5nou2@jRW4pjPGlZ zB`q>HU+Q`#u_teB8iPb4)p+1t_FE{1$5mL3^)`V`P!QWsV$oUi3O33Y7BwxkAs(cp z=M`aLVc12;o8Q1^gFw-`%@|YOmi)l?ucTt^52ebRG9@zZ^XcU9`Yhq))A@iCqg|6{GnDJ&4h*tYdeVTucZm9Q)b-IsE?KbNXYLvc|O_y2S2h(`f zq8$THKDOim5-P4Y_7EvFT+D(}on2&Ae%+Qcp zWZ9-J|vpZN%7#E z3)WwMd-(jN948H7ihST_l_bGCKL2FNP$lp?09GYwYx=?z-p=#wD7Z6Ox2@74YPlh08~2_= zr2CBOk+?IpQ*3rD`o*o?Pd?4sjb2TUSb(4HAZtYL9Pyh2j(i~}YQHJ1pDXK<5+59> zOIjEit#hdFm#YFwm_@<>J3oPq+48C5`C8GW2`w!xwAZFCr|XxOpN-Yg6I}gi$;fk`NV(Z j4?Y7XCl=--mn8m}Jm7cIT4H?VGmM?Jy;Y8-cf|hzzACWr literal 0 HcmV?d00001 diff --git a/source/main/web/amp_on.png b/source/main/web/amp_on.png new file mode 100644 index 0000000000000000000000000000000000000000..b014802f43d7c593f8dd866da2862983f2cccd8d GIT binary patch literal 6021 zcmb_g2{e>#|CTLVmLj8#?8O+v*oGkthA@;ZYhxBB#xOI?5J^jMW)4db`6BGLlypYBvG@EDl5t%{kVnYTXH9ghegVb2DbTcHCy z&>9$V9c?i!8kAvxfTf_sXar9$GL!}r|7jP>82^|CiHrS&P&{Dbx<4F>*_m00=@Us< zF%1PU5Ur>P76XG-70@VkB@`ASFQ%lZ1OX{3fs~YhN?@ppIursH`}GrN_#e-`@&keB$pG zVBshV7ADSMO$7*61S+XmfmNX@s!(N!92g8$RQv;KM#SK8{{IA3w*qTGmDQn&D*pgw zhz5hAp#CEmgNEXWBm#<&FrI*N!-BlM+{DFxml3K@^dyoPjv3J@|BS-S3~KB}rl7pg zSYtR$oRPBv9*==4F*48fX+4_vd;f3D4MDD9``d z&W|1ULlRH~p3ET2|JRNzSd93uY5ZSQ;J?e@53^Kv zEW_x(q5BUQnTVrMQ6#Lc8>3qPQBI(L6+9W`_wPejWb_XVR*6BLD;Ue*4Wa?m04rgE zI5iD*SDX?Ui&A1p@Lz?l1_i4?mBD|??|%vXmu<8=%F7MQXqF)H|2>)iPKke+%>Ug> z|9{DVesst`6bAZd@%?=Fcioghp(Owz7Ctd*WT0ObxzbbZfg+KbJebqbP-{7m`m;87zJJhXhN z*zHvZ&X|<7RAgJ6_aT?uL~i_)8t`#6Rah)!z_H6RnSNZ>74}e1Q0CpZk{+=JQ7DAI zT9v=FH-!B3+TJi*Z9&ENJ8rO#wuW1Qy=*u9dx|L>{5SY>oF^|YrHT*mjqj2ac1sKoqxoB3YMT+euRc+b z_!b~%lD#3bwsJ^<=XE%(aUgQ0i7#|Y+pT9ey~`aP_Ocy1oY)=E?H^g8hNLT)i$YaT zpMQTdV!qrrxCH&WQz(4!c9|NFSq$&y_>pUyAs1k^o{jdC3_bR_gSj5-CLGOMGLRAi z2Y6m+6fjzxcOx9ZOg?!=I7@y}bLP11&A9a(Y8gk2sJioESWPuyVc6HSN8a($%-l@b zwxbK!7*AAKe`zj~w?s#`;*%^2;gmv)vHxb1pq1O*3Ly2{ac(1K%2?<#{FC zbXO+y<6`r{`Y$-aEDf+=Bsf+%JLFb(whbOK1TQhQVs}XI`YaW!Or~)N8|--&=Wn}# z@%C^@FTEsr9m%#Lq;g(tr6Dde?Rm|W@Pk@hItMJ|3?++C!tqy>r6GoTgas*yDOH#`sHI;P3G7#S z!+f{-C*&*(9P1le5*9v#XT{$jU-2c0L1*49UL1VWGP9LEt@IgI*-UWJ)C+Ep<$l-4 zyhmrd72w{Uw(=oq@6@Z)?Cu>E{Z_M8b;qbDdGvGGyFai*-2QZ}aG6Uow!(pE*Qmv;D;Pp!2aFAQ4H*@W^4wq7iw+#CoJq%2mBy-#hfDBDqToDy+KLm%8_z zEw2XlP8VRd)MgCAoeHAsPcqvjJB4!$G=?ypJnFezde}-Jb{=_DvLdGV<3qp8az~Ad zYK1Wea1&nXla;OZx)9Aix2O2xXQdBbsjAkodk`)%KY?Bk7kfC`j7wK(hlW;2YkILR z9GMbeQSb&x04!4~0B8#{u)>(IAllR~O}2xpH*qu4DdgnQ&P3jafqth>nc`^ttUdI; zc-6azC2~q)k|d9QOLJ@+IR1bUhf~YD8z&yBw`g47$6}t62%kAbZ`Z&fd*iwnyn9Qm zoMwi`Id3XVx2UATi+P)xne(e1v`f^~E$kP&+kLYN8@BXOpUF$3{gL0WnNUI5 zkcWyP`^E6q<6Kw8^$YRR$e!mTYNv)Ck*2TSUHj(PvRT%dn3mEk$kmgYg6$lp_vEmw zFC=ue2$<7B7P50E7Jv=OAlDg8kN*N;syQTxC#C?63%FNC^~?~8RLm3@?A#o5A3AZ6 z`%$@);#-qPg{eMK;5JLs2K#xWb|Cj%$8GjXmjGDsS{3!w{*v!6TOIx1Z`6Ov4n7rn zX=2AsbYa8RrIowy=z~P=txsb*Mw6STYo?Z}J~k$6Kg&%r&X$h;IJQFL8~Hx5*Y5nS z&p~tPqdvoan_B*fCRr^myR)gD>IOf@?B#0zVZem?)5@~GS)C6PbQR*bZX-3Ns$s*V zLzOshQF6898m=K4@zmsy`&eyuP6P799TSK>@I%d4ubcCiu63xA`<%Xa%?(K|s|nYv zq!lYs-9cjt^>NQ&$hGIxW0=-!$9P4x+p3zjRw9WFmtBb-h6j)QzWhayGJCU4zR@eIdI#{6ks8H$702nZTh5Xv8ug~ zE~3V6F2bcYqP0&4snGLjRi7`edmeD~Flw^wV$Hn1=$!R}OHZ22G4#w^lwoH_QnKbV zH|?Dho7y|_^b1i=b&d3?=lm$Z&9L?ZJjiF zkyA-M3^_|krL!N5{cx)&xjm5*Ey}f zceHMS(vu>3rD%T-_mQmoHsBs))#Z^;%y^Q|8NH9tIs)% zAM)_RlJ0)ji3kpqopWEjMJHIm9DCo&>20y(C z8}2emJ1AHcm?bnnbf#s_5&l*lpBKI-##Ktfy5D?q%1!0Y;9Zjr+C-ITkDGZ)N(4X@ z@%a5SYqp&CGN*@>Eqo&R-T)T&A%bjUC30*HJRVs&zoCM%XudCJla>nwW*}v9{i<_t zANJ$s2`{gPQFjLdK8E)p8h_p_+DX8 zW}^q2O$C3!;~_+@(J}Pacd%f+Ufh+E(t84$?V5Ib1g5`t^9wfZM+O{{$ScQ}#!K0_ z5bCsUHMUWAA$Cbc>p7>mMk`cumPBfd>m;n|o*Gn0O!!*Y>O_D%c@v;m!?iSM zeZ|(cp!-;JZpt}o!KEQV(H9(Dv!jpo2JGPu+z6D|C!0eD1h2(5?tdhcOP?C#m?dQv zvPIGl@Dkg;0@8=peD)o<;{%&@-(Ru)Y(ot{8I>A!1l=1dRn;4JOQAahUi!0z|C)rF#&=WZ^Y?~0Jj7UQe-jt}@I^Kiz8CJj17YUw6MoyF3+0ueFG ztgsBhP6Y;U%AcN23eZKR)hMdEed>)Bw=0faIiekPF5rVE;Beew4bc@COmo8Y5U_-@ zwd)thX=BEyQ`?IJZ4pMfNUc}fz17y|Fl^PY3^Z#yu9a+M-dKJe$$6T=WgbWiQSZ%K zqVX|9_*Tb;>Cp&%);qit*JJVo)m%dIc?32IS(hln^xRHc+)DJ36&OBW_s|LHkwL#Z zc((<=j$7tJd7vHXQ>)s#L8dR-L_Jvw# zz#U%gQz zV{zC6Xq<@=sa^$+4%ls8aa)yd2?0XfHY@H5O3GUXeR#q{)lKSHAB1G5;~v#}`R*Cs z9no47%-Iaw;{ad|TZ&!jzZV#HKlpUAZ{3rj+?dy-4>pre_&I#gcUp$!Z11SP8)FSh zwt+cbn$x;)Af~W<=*j@#^z~zz0b34&9Uv@f<*so&AU>aBlOZ?iaiA`VHkC2Q-YLK{ zs#Vh%C8G7BD(hb5yu)?$c+wfiHGJ3w6a3CR(@>0dR|#=Ee6DM&WB>Bx7PxDy_(Am| zm$~+uKcq+>#h;viK4Rxc)A!JDPK1LBX(zchMJoS-(Al?AI^{`^iDxy-MtPXEVft{2 zu<#qoyqJ32D|ub~?TOS8mdCW!WQg?VTk>=Z&C29 z=i0B%`>kQeDtyAFIbBPK+z7mD+78ZqTjhmSy{2vhQU>qGF8O>r1AbHMc;0bJayb=$ z=SrYe#+PrcRxY%}`${+EVy3!UGo$=xmIR}6WsLJWZyb#7S1-BSF&EQ((X?@I{0bY| z5}ZkAo7onAbTmjZU&sD5{8OK0(Dd;E8(;>>-)AQ-Z-0)7+~y72&8Jn`q&3YUA+KUV z&!XE^tTwOGRwW}kEz{4RZcTj5s+~U$DT=j1imA3)cOdcx-3OWzMvm)p29BT8UPgG3 zx89sEeIRUm?6`9xJmaLa%aeoG%f2>-n{?R&ObU}8+aZ^XyM)KXyiO3~GRz_HlJ_=& zs=4_E%W!(>acweK(xn>vH<2 zhYbsMMOCk0#kcK9^b1+G_Wb+KcPA(O)FjQ%_P@gAnTHgm-nY}oQ&k$rd_yT}3(hl6 zzJ^DcrKO?^0_MUG%hSil?0A|)A?qjI&WN*l&@ZTvu60ReXI>O`R&m+bXY-|PN?<*i(FM_-6 z-W_b&g(#>u)S>Saq+5*(dXLg#kV3} z?+Od@T{MHsKc)%R3@tK?uz%c43Z zvWAYCX}Ne5Ke7)kmtD6=-}yMq5?l=uUkN)i7#=6h9&26b+zfCm9rcW^-y_P~AhEjf zIZn=vaQ>-tu9R=~z=N-8@BP0ft98b>N*cI4>n535*kb&aFB)?>=p2zgJAyB&-oF~c zjYu}b-Fx!BeLPET6Y^OKn0w#J)lVoYc}uV&c0^HU(_wTwl$u!XbG71$pLMD*`~dpP z(#DdH3t?wtZG0Ip7&c~yF+gL_)uJaSj6ScFy;+Yp!0L(+*!FJAW=NKH;rn8&_5~l#A;(c@Jyb09$i25{>Dt zOrHUyd~wm*&9`Un0F0=NLDA4?3=D%&Ri;tZu~Y!B1jC}Scoj5O1&c*tF(iUI36FvO_`o@QEINa9 zMBnfS8|R7)cMk~gC8?+c2L~$$SEDkY89qvyR=H?`0 zAO8TV4-GKZC&M{DD|>j*NvdjiPU#WoC^Qa(L(#E#B8rHkqfvAsLluLj16aH(@N>RC zlNPv@*{%71l{uYB<6!(JD;fs?R18KPg?7cOp%`d94yEpj22gkaO~pSKF%Q|78A& zqQmjepOZ-cAKju$b^9^$^3eJT52ylkDuaPTsi_fNQL3tVSCp%&x*7`4pi&t$8kNAn zsB5ZhwFYMr?61*ZKq~*7kwd_VvysP^g3uqlR)F6x1+YJBltiU%^&S~c+bTMM4*zl6 z;~(VbUy8(!`N8f02lSs5<6rFlOh!O3l?CXyadP>87Q4#-Cf=VK^v|W!ajtYck%&RL z60mrb8WoR0sS{ioC{-LD0Mw|QA&&9W_5Uedjf5ePu$Z6C@$X3g5f+*|)yECsEafWj zf8UvZtxx_^`FCgjVWT?a_tPCovm$9&~WBx z<6JXtVKpi=$9WBa>JJLvB>r*oO~qz|;A(P+0nZW)$}L-f#|iLX!7jf@76E&p^K!yfIDg z)CME&X>P-wdZj2H{ryHOWPESrwzQ}ijLZ0tKm+O4QiL?icqa4c^f5W@H+1k9!;D$C zYE~I$LuM1)WeVom2ByTFu7j~=>R3wpu3D-iOHU8?im5ApD`izmYRnZTcz&iGUAfbe zuYU7lyu7FmMT9b4q@GiRte`jv?nzA@SWaf|3%h@_{auSqJ-kW;Hg(dw>J9iw>I9nj0z#7$VbM}Hh z?w2f?4ry&FQ6|if@{wfvfnU}p5`d3$x4gOlJ%=@{O@8X57}%X- zn3TH8o;blMayWOe3OX7)!MgM?vM7gYvtIkL?CG)n^D>TqL_M#LXxMkWIWS)08kCxE zqr9_&*cMA*8(c5{=5GmBC_!pPS9kO(C96Gea%_soVrr2e&u1bRG($-*?_wiXg_pap zd5p8fS%2I|#jc+g?me44Ghf3K>)G;%&=B)J&bP(&;#t-QJD7YP5)8G9;T z65I3=6di*XLj1buH^WCgua$U7nK<8O9{8?zEG;mk;luiu2W>9hMKCa&B$w0^1UFwV)eapqiLc2&)zEBL9Mjq)?{Jh=zjxt}k^RX7h8S0u#ysE7LqN0|5~c z0SZ{hZ!+ltPNnDLbHB>!>}zkc7sv#g4gHHz=frI*9htNq<*LFgONUWL1N%alj*VaL zN=eKy9qXZx+)e~fPrCWu`}Ka0576G>^1ryaCtS|e?Pd%XND(dxTEX&*A$!t}3O-eK zeW}%!cmzxIE_fx`r6~rwG(&V~aT`9}_Vkrv z!<_ga984KkBLJ@h_G|-h6S1N2B!D2i*}`wLpRi!x*jdPh`PDDZ#_cx?d!o&U9Wxm+ z_8q(;CyZkCL`8JAZ37#Cg{;syc<31kv$ugc?^6c&ci3Eb!fq9xx*S}npu%@bYuj^k z8{697mnA27EJQ_&Vm^JnA*PB*9Jt+Oi$qKv7!c=Xn&Y-3_bkUI_)dBxK=&(|icEBg zP{1~b!Qb5;;KWqWlJy}qwed+~COzk4yVqIg(U%LoAgAsYqqAGMb|ix!#W9vJF8Nz1 z2eV!9mEOeZGnS9V&tLWs%#cMe=eFOfS5y)Kn(e^`6wYcKEg%4jf%C!;F_X_~DD1@( z>UkSVT^YNdLS$L>c>Tr$N$(S@yu2A9wDU`@@dejs-!$BMkTg&PQWM50#4AWUUXqa% zd4w%$A3j5{nD68@an`298EJ}Mu)-*aUJyv^j#jqQnpT%ojlfHSi$PqDXTOt@?ae7%yk!{u~oiwG5 z>BRZ-9I{tPrn%?#^n~eN-7bOT8!B&`b4|u<7u3EOZ{JQy5y-5C+(*+BQYqT%(4-K@{V%J%U7+dg+QH$z7QQz|9gShspZncvl#zuv5rRspFZ zsW%HAHfb(C+}-&8UPLrv)EqTzERTDfOpQd--WcuRDdlm;soER+Rfyiy7uBb@V0V>o z*N=0WDOs0pUgqBaHrsUU5#MvBv_oyqaC($v)Hqj!pf6D0>3hQ@;;Gz*@}0Tc4HNMa z>e$!0ac*6=Qp<-=3PpUl18#kZopLyQT@~GWZSx6pA^^hdCS?A{z-2;Ho_*8Wv_sBhBKHH*3tok6O1SU5a~47(C0@Z^`2+a>x(?**FnPFjTYcd~tJn>}%vh z>HS~9sly60;pFef&sTLqH@qy-kzM=hEHqMU`!t0m4C+R_Q!p#uFPmb|RD3y>@(@&% zy(yeahfPEJlBBRgUviF2eXS*@P@ zSR2(k*da4}SbYbB8@XLnR#aP5|E%siT=bGZ!jvrwhk){P@3!vMvkY0%q&>59tKJai ztPfH%JS|dJ`=fG#y@pyR+d*33ja_C^GtAAI%7(8Fo3Sl-A`=s*^Mg;Gtu~)h>g$KY zbHABEpalB?`Sxf;Jdk{hBFPCv*r?)82IEK6vU^+FP*ED~B=Z}i7jZ3IYOWn8cB^>@f@8GWdnDs%?x&PLM{`|%P zZ9#o)YXpyWoK|2m5=zKgYCfP@4T&&p{q2AnMmhPtY51w4NcQsh+FSMSaaP35SGbU= z2jaD^4@{n?r$4>@K89~-rR4C$^P9BH)trMvRi`GpqzWoc(ogKVxeGs2h^R@?qU~$! z2odE^Ue=ZTf_Zzfz|l9)6Q|K(DUtG)x*L)x)_|B8@VYSbjT(oEJXjBk+sU@jn8M@egcK{Vz;{~4=JShzc-?ayOO{qT zz^}jeybT#yh{~C=&`94p0Ik`j%!BJ9@^`<94xZqa)H->2w(?%iIN5-AZnWW?=PjnZ znfViOQJ&PYO2(VgvXIT9dmU#+*Hcxh++O?<_u-L%h+y&cUE(78+7~INHlmL9y>5z! zdPYLWHmu))N_FWX2OCZ~_-tTXf?{{d-`mTbs5@^Zb!V1QQ#79&`FZ`@v)8Zs?ytS- zetz@Ho;^~X;lPRSysuw2C%s_o>3$^{@$x--t?Sy%{)Lv+czsUvBp*7`fS?H6Lkd&+-T z=nUKadyh1~nCOFqXn(;gYUR_d*>C3~Or$DZPo6{xLG-}}MBh&W4lQqm%aAEZm4`b{ z9=bLic~v$yrLv;-wPe?+pq)i~rUyUSJ(XF~b$*I`qWF1Dj@vn~#h%%=do|{2iG5mW z=>4Ac%Rpz58Lp@Bi7+%nF10+400DIxDlu}N)n}{axMVK#)UFGX_7*_P!4^)=3}A5b zE4IIq@L`b8)H!bAMQ<3g-o|Vf!Q%@=*x$z0A-Y`=kqFTa>C?~mGKM^>xF0I9R8=ZW zFFdi+C7OVfH9C{K(BEQ?Jh z^c-L|){jjD^4WYC8*sA;2`p=muxt~5ih=MGx)BP^M{xpqDtaM>Z-|B<1T+m9ei>3YH2g{9i6?q_kTI=Ydh?3xGQ#=s6oh_^A zb%nd-z&z6@Uxp`eBu@plvI7=fdbUi~>QIH4jSd&JoBpOTu=qiYqHPAkapKC{N)9cC zRnc#kQE-y1av@oWi-#YA(6m<=I&Pb>GtV)@jlWpPTH6Kj!M94Sqvec)Q7p}1Fwcu6 zasUPf^K88|8Jyz0G>LF-)%3t$?>m9@jsud~N1kS{tsE&W)jV{u8+%g2G$aiKk*kss z|1vek)%YpqW83mAd_lR1b`?Ue;{HjeiTQQ!IgfM~8OrVBNL6W}bR9vFZQuvF`jaI? zDNP?;WvYtE?P~T{*0UwXs{}JHT9=g7C>0a-%_OqJnGuBH6X?-U*N6 z_n%doQZ#PQ=Zy#)DG+y+Vy604-Hxfg-bUHd4i^>x!J_k_Ck4cog;JZ_tw|lamieya zgo2o|qCoO_>k{yL9rx57xaEvE-;I1ztwXax`7xl6Gp*R)!0+@{zgS771+_)C*Q zb>ylfOI_!SaasW=A{kPQ5T3m^+iMIE6s zW6(gTc{M4ST6iPVK~4kH+la)CCJrG$>ib=83H$ZEG&p+k+N90wjImj+9rQcC4D&v$ zdDx9@xdFCaATv>rFYG3nJ zs@s<-e)JMVd6@LbcarGy0FJww2#-GbwRG{|g4k!2%Kq7lT}N-wuO=F4s?F`0zNb}p zapFj4N#S^4Xq)la@^XM+8gE_d0fTpndDgKt_S~3*4qQ?-X$$IIPKwu0QwzlxC#=?% zDsP)#C=)oQY2}aEZIRJ*<6%^i_=rf`hE`=f&r3?AKcJuwbn_=c6t=wuPX01oiWL#)nE- zUKL)7pw(6tU>)GV_`qSrqRzXpK*|+VMi{Eqn$;1sIc3`J}%A%wj zM0IaJQd2Kq1_22W$U>Tx0oUw?KT!zH+Pq+~^oexweCy|r*L_*nDZ-+L0)fg!{ z@$~pHkyFQ)f)^Y#288`rH^M%rIr)5FpoCIlJ{u-ZCs!OW*oa O&Dg*~ze3j~=05;`s`{${ literal 0 HcmV?d00001 diff --git a/source/main/web/cab_off.png b/source/main/web/cab_off.png new file mode 100644 index 0000000000000000000000000000000000000000..757b0a101461d75c5205cbb9a8949bb7f86aba0c GIT binary patch literal 4677 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 literal 0 HcmV?d00001 diff --git a/source/main/web/cab_on.png b/source/main/web/cab_on.png new file mode 100644 index 0000000000000000000000000000000000000000..38049058ace79177a7f152ce8281ea1a5edce2d4 GIT binary patch literal 5964 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 e>fgfbopf86uwtR3XFmAft)Z%;Ql@E{ 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 literal 0 HcmV?d00001 diff --git a/source/main/web/dly_on.png b/source/main/web/dly_on.png new file mode 100644 index 0000000000000000000000000000000000000000..6986957ac392132f2a4620f716e7c56f728cd3bd GIT binary patch literal 6237 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 literal 0 HcmV?d00001 diff --git a/source/main/web/dst_off.png b/source/main/web/dst_off.png new file mode 100644 index 0000000000000000000000000000000000000000..b3ddf1e39e4167c553c9f740534d6d9bbf4754e5 GIT binary patch literal 4705 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 A&Hw-a literal 0 HcmV?d00001 diff --git a/source/main/web/dst_on.png b/source/main/web/dst_on.png new file mode 100644 index 0000000000000000000000000000000000000000..df18ff9add5801b184820f4d7b49a1a3ef9ec8d2 GIT binary patch literal 6291 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 literal 0 HcmV?d00001 diff --git a/source/main/web/effect_icon_amp_off.png b/source/main/web/effect_icon_amp_off.png new file mode 100644 index 0000000000000000000000000000000000000000..fcf957a4b0cd2103ab18d6aa775825b51de1120c GIT binary patch literal 762 zcmeAS@N?(olHy`uVBq!ia0vp^x**KK3=%mav;s&m76-XIG2T3>QxD{D7I;J!Gca%q zgD@k*tT_@u1$+TMA+A8l@KFE@f%Uo#?|>l^RTAVE%pet5-w-S(zvuq}1>Ps0D|IwW zKRl{XEw-+`^5XF|i?Y0Tt2$pP8?naNh-7G`aJw_bitKjv*Cul2a5|4fxWo_Bb3k@L_)E zNAbj~Z+Z$8-Hxqi3HjXM^N%5klS$Hk--B@7U#;Io??|cboBm>zszki<$D6tDe z@nwBxyhBiK1@oF)FLsJNmSnrE&9iH{#2NjU#&X+}Y`*_zZ+<7s_E^~=blZUiJAR9- zi*o9l{E?ygF(=#U+E+%$B~tQs%cO3&dGMdqgg@@p zi$kz$svfE}> r9IfjSzt4!1acZU|t5HUO!Py$6s545yIf<>gTe~DWM4fi>Du5 literal 0 HcmV?d00001 diff --git a/source/main/web/effect_icon_amp_on.png b/source/main/web/effect_icon_amp_on.png new file mode 100644 index 0000000000000000000000000000000000000000..6b9c367a076008b29e7b967ae7c8c54660318008 GIT binary patch literal 762 zcmeAS@N?(olHy`uVBq!ia0vp^x**KK3=%mav;s&m76-XIG2T3>QxD{D7I;J!Gca%q zgD@k*tT_@u1$+TMA+A8l7xvbp2oeIP-#hCALnNvs$S;^dDzLsGSWbS={{srVPd-=b zXqJ9>RH0gIU3=xl<7*aWdGA(rzEU<~jj<8Q&`RNUXNnguah&0E=c|C)ubOGEMa#El z|8aiUx^PiC&pnALY|Elmj$C%hym{Tzi8Dg@HZc6ac;$~rB_@h^ z7}&X+b$k_E{70K@QKQ9TrN_2OqT0qrMgM-CKCs|aMR%j)+=(Bpn485O&z;Z1W7X3$ zT|(l^`pkHTpxg@PHMd^u6nQMkc3GQe*K&z7`Y(;;wkO$q|Ign1PL}PlvP0;$0}FQi z7FieN)HnGfL-S)!w$rt*jE+mBj9(PpuD7$Xf!Oye4nXw6f z+^ZKY(GxF`oAx33&htHuiW4S&G`i5rqxfDzq9t58M3~)SRVSalf<&n8s;ZE$6T)S; t&8#?D*CWWUC$xIT>D++p4I#n23_`trqMDAswgMxB!PC{xWt~$(696;tKa>Cf literal 0 HcmV?d00001 diff --git a/source/main/web/effect_icon_cab_off.png b/source/main/web/effect_icon_cab_off.png new file mode 100644 index 0000000000000000000000000000000000000000..06cf6c4b6a2a6bca5f4c3df339123e8b5adb51a0 GIT binary patch literal 1427 zcmeAS@N?(olHy`uVBq!ia0vp^x**KK3=%mav;s&m76-XIG2T3>QxD{D7I;J!Gca%q zgD@k*tT_@u1-AlxLR^88;iF(UhCs&N|Ej>)omUd%7tGM~za~7O<=BDdcBwYK{7EZz zubp0{Cf@)0Y#v9$t1YwV?SE7uYb{du=92pJ?aIRQ{hpM2eK*~s`QoKeRHNnchsWpY z+6cVgd${Cxsm7FT|ID-ptttQ z!!=tjTv53{X-ej_FzJ-U%#5f@%*I^2hd;<~{xY8{wXy&9-Lm(e?6&=!&R$mce9ry! z+Yign?PU>2jO$Hvh%m9X=dth=j9K>3rawM?*@hb)1%JC$C-;2~QjSpH=ZU*;p=~#E8|)esJ|$&?1@oIbhZCKmT9{Gvu6Gj;7v09di%mYlLK{jfA6op zWD@x8WY*Hl?rUC)h9w<7aigkAeYyF*^z&gc7WGxH{nsz8^5!=y?=}?pz!e?u^>y32 z1ALlnO;#KKwnl6YH(U|x#~!@tNZ+?h%=6yYOWahs5_op^{GyW?yYl%qf8WvS+{^yD^_Pe9msmZ? z;QY?^*E?Dlm*0@$+H$>rMs$qPw{5C&tDlP598b>Y+Pdmn1@H7P|I+xhnCnX)XFt+v zwc5yaE!}?Qr7P;wK7I~p@zf7Xd5&*i%rbt1#!yn}gRXan=^iIX`adrwF1__FY%*JrEV zSPzYMUf%sDxKEtsGu$ve%K6F-?)f`HZd|#rEBo1-8S+kIxERtk4=zcFS<_i z+u6^nDQCW&BK1tx-E^_iy?N{W9IkSj&HCEcmo@coY|67=dlL`aTWxT+wJVdm1zopr02+*2TL1t6 literal 0 HcmV?d00001 diff --git a/source/main/web/effect_icon_cab_on.png b/source/main/web/effect_icon_cab_on.png new file mode 100644 index 0000000000000000000000000000000000000000..293f4beca4d4c728c1ee4faed60ab9b243c05b31 GIT binary patch literal 1427 zcmeAS@N?(olHy`uVBq!ia0vp^x**KK3=%mav;s&m76-XIG2T3>QxD{D7I;J!Gca%q zgD@k*tT_@u1-AlxLR^88uj72W zR_tCoy-H2I|Ml5Cj)qrTX3yLIs6y6Sr0&fn_2=7_h3ES{Dfjwrx<~WHOQEPn%jFM` z&(*aNc)#~>$?sB)Dck;;X<2_pB9Iu@o8}NMiqb?S)Tk!fZ z*)0A=hIMZ|O_IXb|2S91wJ1=3QDWH>qm<}s|9>pgbpL0~{3*bjWcu~?g?%Om>g@jB zUwz3W@Y~6(rI+2;ycP{hI(*_rRh9a3^L^>(!(uGzt6uxBUs~nOZ&u!IDDZ(RI^OH+ zwsi;iG})T0HvVmm*c@)SBG!*Rc=zr6jeME6uWGe7UP!l#cZphoX@p&)wc@X>0kb(@o6#Fmp;yZ zq}6J*k?UHz{mM&M)Te#?9Q;&0pX2MyAeRrW0l~Kq%t~0+GF!`Sp`O@WzfYytIbSy} z5eUwho52_Le-V4^vh$|=UWIH=(_&g& zvaNS-njzC!_J8r)%igAUgx3G86HA`UcQfilhQ)aY^TN;u=G_w~b4K=_j@(R)D?X?Tr{-z(F6}VWTHK6R4;nppeRGeHlo{625Ew_us=fhLuXTSC)9=5mI;BISICU*;% PyBIuO{an^LB{Ts5y1JTm literal 0 HcmV?d00001 diff --git a/source/main/web/effect_icon_comp_off.png b/source/main/web/effect_icon_comp_off.png new file mode 100644 index 0000000000000000000000000000000000000000..fdd898fdcc4c5fbe8a40df84c4f0f20e655449f2 GIT binary patch literal 844 zcmeAS@N?(olHy`uVBq!ia0vp^x**KK3=%mav;s&m76-XIG2T3>QxD{D7I;J!Gca%q zgD@k*tT_@u1$!>TJk1v!mlTQ}ZV(^~v;W)L8Tadlg2Ur)R-a8jzT5Xk>XiDruhTaG<0jP8#WAE}&ep5@y$?Hx zuz#pgUZ(Jaxg|(F@Ss(Mqt{Va_y3LS9^HSY*0gwXY01Ttjte=a1-bODToDkRyYOS| zttFnbc2^7jTK4^3ZH3JHw&say28_I4f?sGZIDR$k`iVb9>CtLd|9Zbvv1Jr~edC|c z7w@x|;eqXnlBz1Xb1Q;g>%6&>y&~+D>Vx0LcLK7jrm_X=FW%P_wM6xL_LkoE2!BKC z`!862X4T3nsa!d=U4C!M>EPz?nWsut#_Do~#(uGmJm7ilcNt&Br`7z1`<3>7KUg4o zzWT_nnV%mhcnaU!q4eX?y(4}?CJ)d4{_!p)s`0q#!$Wgf`d=2U4l_8fVzKV@v$age zx3IaJK76~6$$iTKi_ixfu05Wh7E^MyVhQW9PAT?Tt+l>8o@9Lt;C>UbrDDO(8<$(k z?^#4-H0tN_sm*1Q_GspniF+Scu(473!HjP8PrLv5|7Q$&m^9g{;^-S-Y%+Md`njxg HN@xNA_oi9O literal 0 HcmV?d00001 diff --git a/source/main/web/effect_icon_comp_on.png b/source/main/web/effect_icon_comp_on.png new file mode 100644 index 0000000000000000000000000000000000000000..ba0dc074c7afea9d67cb8b1f0fa80a982e90fc87 GIT binary patch literal 844 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 UqQYTuZvX%Q07*qoM6N<$f=RCkg#Z8m literal 0 HcmV?d00001 diff --git a/source/main/web/effect_icon_delay_on_t.png b/source/main/web/effect_icon_delay_on_t.png new file mode 100644 index 0000000000000000000000000000000000000000..0903acc62960992532ba8cf710c5b2774156c6e0 GIT binary patch literal 2247 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 VMSr%P=?A7y22WQ%mvv4FO#nfpCEfr4 literal 0 HcmV?d00001 diff --git a/source/main/web/effect_icon_mod_off.png b/source/main/web/effect_icon_mod_off.png new file mode 100644 index 0000000000000000000000000000000000000000..4a61d98ec00273c70a8eda3d9841614414bb1e14 GIT binary patch literal 1394 zcmeAS@N?(olHy`uVBq!ia0vp^x**KK3=%mav;s&m76-XIG2T3>QxD{D7I;J!Gca%q zgD@k*tT_@u1t$W0LR^88;iF*ahk%%C%WGg<&L|1;3ufRB=-Irw(MmjJ=Jo;$f&TCR z@0#jA^ndcSuHklk_tGSx*Vo#zWREEtIz1Mwe9w7x$;20am(9(LZX|3t5b=p^@n@zP zZ)19|7`%z=n^F|IX=8Zd^l4#JuN#-SuM6?il_;4MZITzcHMn&0%}cX#qtN4C1TUuFS zTc_sw^d?Fi|1aJ(r9`YdA}ac@leVg-s;P_9!z+72Jgl>~Tsti$U&Ep8Ej2A|s$gbk z+#a8;elnT5-d5aKwJejL{at(3P3HUOImxQui|0Ld{=WV7t@k%S-!6^+UMl$S`Gpym zO=`Y8ezDr~)-=cZr!V%J*!H%$rR(1FxVSCseq*Q0{Ua4d7Z;fL6(r5tc7El=s7{=C9lp z-EA`Up8 zT`c+`hr#LAgHZh=tK|+X z=YqlpuX$!&`Ma7IWPdWbQ`%&)o7Hu{WXTdKZLOt8{x38)S6Cp$vA_KRSLH1YxiWdh z@F$r$YmZNg(s=#gN+O%=#SZyqp+`?T8jQXv=?GRx)*o^9cKx_@I?v3vSuE2T0;SGr z->Zy$(>g;+XLsg_BVoypEfsz!zCWw~_Slc|8=;)(;#TR$X;@{X*j?MbmG$uip7AZN8S#wBz=~IAC^S@O1TaS?83{1OU5>Q%L{- literal 0 HcmV?d00001 diff --git a/source/main/web/effect_icon_mod_on_chorus.png b/source/main/web/effect_icon_mod_on_chorus.png new file mode 100644 index 0000000000000000000000000000000000000000..e883193582b4c067eaff136e643c156c4ca5443a GIT binary patch literal 1908 zcmV-)2aEWLP)EJm~m;nQa8-gMUE96L11VK1;(9pyUb7%Jh8}hG~Y+NQuva8DM4& z=8l6{kp9e#BSEf|aFozJz$K<12C35655?F3u#@RjVnMZKxV2=WJBuYV-3r`={t45s zfcipr2Zvbf>)JBCfF;S5Vi#Dfj}$w|VzEr`AWcG}+Aw{XC1}s|HcUTihq z`~Ts(W;%m72mtuu1HmEL{uBomkvDl(IV_J+o!p62@dRwL+s%xef zv$63^ubsNKs?W2pQL}@$l7C{c|>@H``adJml)h+|aUp*}>O0r3YF2M!BxQm@$B!y@P@A zRG#HGmN0@PYsd6rdzy9-v+EOPa_L%>8nlI-Y?IYf15UW;m1LYlr4#nc67!1F`Bm{a zmh6%1`f*Ly1Kx>)J;xl)3B9HTH>8^OFa8UfH#%dASzPofddO z=cv$4IwUjBFX8Cw(2CLmn{{2p%*5EkG|jS`r%`G9>#~q@B$nh`?v9Q2xCZ?kpi8YPT8Ir=Uer|l7@Sogg&>$3(muLX9ZW_=CxJVQ<#~B_ApJe9GEvPFh>*ncXqo< zC$dh4b(*Fntsad+nWJsVd@w2spGDcTJW@{O}U>2tf3EwSB2cc=QDubLPi6#Fv$A}s=)<0leM=Ub>eeutI^sP24i%}7lLzGo;)ut|#Xem&I2xqJgO zl<6-sojRHlK5wi~fhPKU=}Mp#0D8Fbug04;({7-NfM(knE2Ae%AU~>(mXlZWV^2x3 zbu2cMH1mYFJmzX*rxzQXSJZ`M7@!SAN9DnT414D%1x`(Q*K2aHuby^DX7KMLFOdZ|yhN8By34k7a z8YuVIHT~N?s-;W!QmmYG&e8tTeW2 zHKj}Y`l2|$-4vi@IM`2r5ZZhYt*AGnvoK507ly)U?{TpFRccs&eLvQcbsf8|$_}pQfnK&$Jr) z3&LW18WYfuEB}k5ASv(`wBvxbb>9{xRZq;+lp4%E4m*GwH%+r>0t2$*efMbt_b&}8 z8_>nL%V=;+Q`DXv_Vqm+}+o^6$uKerY~Tpr%cg?c7E1=7Cu z`--~Q7~}-P{A*yPRow>u5i9|t0Ck(r;4`bbl}4{;)EJ_*+OF=;b_LYXX;GOC3en1nyG9t! zc6rHgA<|O+d_WW38NHK2J(O-#s(IR@qgAhqqSm|1vofq5PKtU{QXiz7k6IXYkQ_yw u&9#C&VU})E+6`?7sGZTJw6)~h{rC@+yUxP=#pMqG0000MX*}h z6(=LI z03U)nPzt7iSnxb}3w*49=7C2C%j_sn4X%KH`@zp((m)zc0cZPZR`TpX7*;cUP9$yz zMWDowxgUWGR1UatB-kwyF46I5&`I$YP$AmBsN0SMUs7C^n8PZ=6NQQCq?JUmq&Eod z7-UDj$7MP@9PqPxbd#3Z?1a zL_CMIjXwHrrZy`nK19#HM~e<8({riKL7^QWZGJeJ_E*;{NZT4Vrgb}Bm$|Na{cj03 z(>2s?1;wqa>kycpN9_&>?I3CM!pXG1x?V}zmas9c+n%DfsT6;R;wQt+^j2z{M{#TF z+HLNa6$K)mLRwmYF}SWj5E|F@oB-p@qMXS>EAVLQ{uZG29CrX4xC`7JfUzJJs2$w! zrkZ=lk}{2dz!a9 z`N5TS-AGzyC`^wA&$RAv_8c1&<=FqmeFta;he18qCwLER;hAn+>lo*!uJcKIGZd!P zgO_ot*4a&_)gE{cC!8ZpB#%OX*mA4&s{_EXmdq-_d`>6TjaL2Rl?yw*@2*L`Sh{2!lIIy#P4 zInE#5n9%OwSarg=%*P{Z470ACAVLhzb^QRvxvraoFug!%zGpfZ<~%X-YxG$Srhq6h z_;zah62$}7HDdcoe~RJ}6z{xYS}%DGWpUT?=i9Enl4ZM8xX^a7Fx&n+^V%YN=lzb` zj-yW*mJ7TfHb&ujRVbPqV4s!X>aSa z+E=Ju+*EC@&zIZ#T>CHZy4(D?IOFF*S0}RSwD!D+ALsEcF|Cc~`!UxSz5xGwb}Tck zjZbr%XWRWTtCq-hV1yjkQqyF92B>wL$H0fdHn0T5fX6_&+dN8BpJ(gAY)@_XcB!pt zx@T*Oz4B$;e-74w$%a_c!sY7u2r$eI{SnXv)W02;0reV=@ZELruAa{=kP9jd^TnZ# k0o2AwEpJ}y@L*s60UC9eb}TN4eEDc=0l{S%NLXMC zure?&HR{NeQ(#ks2qJ0Hpq8d2GU8~ILQ>-e1QEruDJMm_s0mI|PFe$_S^Yz$V49k& z*AUH1lwGjr<(#wg?#EtGcV++Z%>0Hq@AH1=eK`A`?|kQzr2EJHNW*_)#YeMTNqo)a+76~CvAh~Vt7Y0GXEJTAud|r8&S^|5xy>v$n#G5)_z`C_UB+@V zS==#wZIIW?#6lq+#k5!(*Wi7yJtfN7;ROqa0SDT3CfYLa5ue}7@v`r3DOo44l%S5_|#uCheQoWQkV zfqhajW*mqD0l=-LV(?K`Fp3o$&fWq+3IsK8 zirC0<-eASL-PgBcnp)!7(-pGmow>U9oT=JNOQvbhFHO^)$p!i8{^vi)8gymXGTk31 z%jLWi850KH#CZ!i0Cs~< zK^>?EjWLgToKpv*U2Y&&0bY$8=^2CGw$#_z%*PJ!oXlK9E=AUi&C|R)C)ug_dSW&N8p9}V*M6YG=mlFR$t$)Y2&(hev;-Y&bI^l zwhIQXl03uE^cDhQ*Uby8SM%NbxsYjkC=;ue>gKSbJA|Tpn3iZ4)9Rg8Ow+<=x+G6& zevs8^dHw=owLm6AR7z=p3wMwJ(m@=+1H3| zXL=lqd$4$`(KI(?4Vp0uX9xVH@p3&c$!|FQ_u#?+cXZ4seyEt zSrI-{G=l!@XXcwj8A_Zs>MyeR0(Pxf;U+xP#kBBpp}BgJVorsoE1Iuq4%Y)8#jp!2 z6fG3`3Ir%xrl7q8j-njm3VFJdbxd3|;rN z+rbKh{BiNCmFI?bWNEkdoDgr|*SGa@aWUhmTZh4P&2cvz0AAKi|1QbBo2+Peb>Ny~ z4f5XhotUL5ayf7puj^3L%=|d;u|eJj-U~K>bU-hpF<_ZN-b$m-vz6d^wYSY3)T4>2 z>8xbUWl32}D4J6qogV>`yzH!3C{kkD9`t4PpqB#e!OaA#6lN+h?;iAJ@%SI<+tdi@ S)Nnrl00005Q5d9o4i|^++TQgI0Co5#tegNGl0KqtPgh2to+r6{=N~DJ@m6NC=8tilX#E zi8SfA?%6k%?dC!6)%%At^P4zp?X%Z+_gQ=GeKtjTdOf`!?b5FbtPg_0Y_JLBf_U%( zZ~?=?=U}V&8wtApUt$}9x!`Y5@fe%|ot~uNw&46@ij{f&NeHG9z90p@2x357HR4Wz zFfi+h3rB!#DPV-KJARPnRXkh3+O%W#pz7X|IYnQS z>_eGvP8H9lu{PtF-Bygg(dTSUqTgn1HcGw?%=eBpiLNfM$1-2K)rc1DcwOds&Fg=m zwTb?WwHwRqmdk51h#tV&ZIFB$nQwqKiLNfM$1&f0s}U{Q7O}QL%-(_7k6WAQbk;VK z*)5aTdUd}{OqA?xnXgw3eek?qC;50@_phO!J}hP%$v4sHqk9`bdk!bi47h=owZKiZ zcgj!n(w5{@xgD6mM5omtdLC;#MDkrX`V=9!+1InZQZ~=<%vu}ok&_$izPdUVN43o8 z8c;7B&%F$&HoFxs)tzL*+p=ICnUDf=iKY>5b9%Xs@Ahh>DAWJWD;*oG#Is{Sk8e`E zmz`N2VDx{;g4H^&A4POi3R<*8_ZJy3+P9|;(OjPvs<|8+rnwjw=Ay^n3)A0qxs(yr z^5(uY-_lCqS^j128at}ZZR-G1_uoM=>#de&x6)A*plTbIU)16cL?|VF7EE z*Z)QI9o+u_53j}C5gFhg$a7o zETX0Kppl*{MwLcbD@MB&=!HqS%GklA!5aFJKY^4WUx)rj?~k;c*AtnbRI`XazF21v zy&fYsHAHhQd4y}h!tpJ(uZY&>t&VliT^X%iw>s8i$G$Y5OU8%u58be)S>I`{(w-l`6hgEQYC<~u9-a+xoVY!6ICtZb!1 z@NTdQWPx>_u62GqxWLyi>L;@N%l)5#4o-m+k<-udp2v_=W zSPVizfHd0jx%O?4tXDrS&Q&wf=|q-JYk!gKdw9y263rJEI`yolsI{7AbOJV2zZpC0 z-rA8?!(`A0v{2NouJP4IRU__E_zpbtkZ9U!QUmPhOs$ACdi2VCK>u#799ER%sN2xJ z^L+2swNvsB9nllB3-o+tq9@tYiWZ&Dm}8rNn__RLp8sOG@&x) z4eaG0Xx9^D>eXZ5ufPHj0h)sDAVIGlrP1fvOwiYu+omqV*7Ss!i1Fbrw-mK{2Nt~ypIaat%uv)VDIEj!RHTU|E?Xgr77bbn6Tw17 gtv2DJFN==!zf12iX37fi-v9sr07*qoM6N<$g6{WkegFUf literal 0 HcmV?d00001 diff --git a/source/main/web/effect_icon_mod_on_tremolo.png b/source/main/web/effect_icon_mod_on_tremolo.png new file mode 100644 index 0000000000000000000000000000000000000000..37ff701ceb5d02549360aad7fdf28078854dc3c3 GIT binary patch literal 1813 zcmeAS@N?(olHy`uVBq!ia0vp^x**KK3=%mav;s&m76-XIG2T3>QxD{D7I;J!Gca%q zgD@k*tT_@43`|=Cd_r7-l8;wvjv~wu0EP@Q*xIi6XaypmR@cew?^D{;D!-;dZgss} zv@<_M@!cgFK%=&IDx`V~LPRdiRs)LE$BE77` zAa10}0a3iKPYL1@WUIp+`BkOakVPiuNMS0=^b=N-K~aXRraDGUO_m+m5QuDBiiA3n zI7ARa!o`sV>CEm(MR6X){g&@+eSxg!B|(0{4BP=dn^!kliKoomUSJ{6|NZ}6Q~ihj zPoCB_+>Y;Fnk4l4T3eRvF-1eC$AXpbIj=66_`>h9xtY<8gbfEGKCvzS%rxU|Oz#zg zH*tMaib6MS3@@BMEo|y_<1+VkA)dNy{9@8Fvj0maMSIRzymD2Nq4-UcjtxnAbMumR zU4HQR>HCkb9&IT#Pu?2byL8Rgo1gFQTen=Lbh2Aec;@CeN4nBNZeEfzoB3jMx+&wV z+@5Ev!(^k@ZVP(8DpW$}!t9(i9+5lMt&b<)=Xt5RU$W`eqx5f`51t)9%4gTXx|f@q{`_hZclVh^GOtGOW7KxsTuA2rNsXH zMVaHDOTH}pecJN+-upK{+kY>~Fd6>F&#m^6Rg*@vObE*#FY49156I2nS6&hQQ$z6WKM9U^ zP42Ss?PZ5Hiy5txcbhz`w1Rz4c7q3N&1#d^OCJRKE3Ce-=Ap?^_VoONDM`FmQGENo zRz6r=;=^6DsY(fXN-Z9|rB}Sn;MW;Htc6le)=) zS3A>s|L};&KWU!MqMKRAnGK-}6LZLG7O>6Sd4<+Ea2@3$X}xqXk)nHG9qnbstuV%nB;e`VD2 z+bQgsygb2Pb+;;v1KG;EmDqpiF7-QC79v=}VWz#Xjlh d#j-B!XKX#{d9?Q8ohhK=z|+;wWt~$(698}_IjjHx literal 0 HcmV?d00001 diff --git a/source/main/web/effect_icon_reverb_off.png b/source/main/web/effect_icon_reverb_off.png new file mode 100644 index 0000000000000000000000000000000000000000..e53648f886e8384ac9b56bf6e73c6e175861b8ae GIT binary patch literal 381 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 Pzl3xvd&|=Gn`8e8b#Oz` literal 0 HcmV?d00001 diff --git a/source/main/web/effect_icon_reverb_on_p.png b/source/main/web/effect_icon_reverb_on_p.png new file mode 100644 index 0000000000000000000000000000000000000000..84019943b93528d50541f35b48a7b8f7ff226168 GIT binary patch literal 1455 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 QW&i*H07*qoM6N<$f=V|HX#fBK literal 0 HcmV?d00001 diff --git a/source/main/web/effect_icon_reverb_on_s2.png b/source/main/web/effect_icon_reverb_on_s2.png new file mode 100644 index 0000000000000000000000000000000000000000..1f17b03883dd3cde106e1b9ed419ad5f1f1bf9d7 GIT binary patch literal 1788 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 FV1f#sZp8oq literal 0 HcmV?d00001 diff --git a/source/main/web/effect_icon_reverb_on_s4.png b/source/main/web/effect_icon_reverb_on_s4.png new file mode 100644 index 0000000000000000000000000000000000000000..d8d89060c200d402f208294556dfc5eb0667c273 GIT binary patch literal 1713 zcmV;i22S~jP)J*w_Sz3xO zk_A>pQ^!%becw5k9TpbUSRlro`OR<-=iK|-bHDR_=iUY8-BsEhZ7%S>mg@qhZT z&%C?(rldoOO2V(LUB!nzq)$-e(z0Wa+A*+=g#(Sk^0*0U*@49kZ6+>-4Mt(v_5^9u zfvqdv*n~ZmwCvdM8@If$`Oti7Y1!E{wpvcO=_K$>(sIBkb;g$xi&}te;uaCmgu^pR z%R%!SPxyBfWEd2r-B6HHq9Eylf;azAIjckUqZ{A1B))|vaT zcKC|MvEXp=r5l&Ft%Jp+IV^lBB<_lKub47AzCxTP4iI})^3l_)h!$eC=r>$jLT&4a zNWz&GtBV_OOT_)a{WzQ)kWpz7={|4|i!+Y3cdw+jVqzPykccOy6X`?_Chff; z`h{<;qT^k}Y+@j$6}Z-u?tG%sG0la{t^W5r4+hFhvKOxMdUVB7s#|Rx}oV18EFQiDs z7nX^3ZFvoXa?0W4zXx)$g%Yn2!-%o!%<`QbgxJK<4d+xq8y>^RRRLNEP=X zdWe}$xvZ!Q?;&LNIV+@7uT-~$bPvJ{GCq@uCB#j-ZuPQBO5XniruDrXDU3ZL@yig0Tg%knnEKh3HGTLoPZEI$CEV-5|rn{f)n= zZHKrsu4BUxxkG_lNFE(;Q2DyfLc9g8sv#SiJ<}{b6hW(UjbleHysFL~hX?N~Tva&3 zM8ZF7x9G<**7jV=c@GkW!SVh=CS*f4WGZB|bz-`d_zY9_H9Mv`JUn67FA+0ORfu-Z z79s0P(Q6P_ySYNBOD_!q-d~Q`Bd3J~_ZySVm6OxjCh$JnKg*|H8RrjIQQpdOCOJW5 zS)wBHwv=ywFzq>VpgCYLIZx`<2NW_D$hi5~qt-lD3g4#8iV3E?l~-uLS`1uHXexiet;S2E~+@M z2i^uaTWXibdHMy&TgjWBRm3;MN!U1?gUgs}=sV&%Wev)+9WGM)8Dc-NoR~%o0dF}| zE<2l%Hg|oCNb@tEHPIV#v4ulsk7dN?kPB^>N-nXMcpEaOdqWnc&S>E$7xPc!nYXC? zmdPh@UM!k?D%X1yL~K_me@i%}P5D+q+%Za9zsvr*24&vDPvcMX-Xo)OF{P-bnDg5* z%=~#JrvJE_By$8aj<3e7(<_kl*Tf#%MOP7+WYsD$-_2uV}MWk`N`b zYqMl+Q6edlWRLQV7Ux^u?|a|#o^Q^%bD#U%-~abte*for&bhHp4pvY(H8}_b0=2Ow zxrpuv(S?_l7X7!K^I?c?i#XOEJP1U7>HH-IIdfJO0+EiTlim65_I5-Hn~4OdY#$IA z#N>$35XfeeAPzv;1M*=$AdSv4f)C#*hr{SpBe)yh9&OJt2mR>QAzW}T zprFwh7zU$99Egf*Z@=K<4`X367hLf87J;HPeiq~p(L8c62SmAmJhp&K0WAVW zVXmFehC?*xf&ib*C9~O#Us5^!3K@pgMe4(}+~_PSTgcn^PX-_f;DbhRk!pAZ293bt z$rwE%UXO^zY{FoOX!H-LJ)27R4gNQ%0U1Le;`E8Qe}#&gh6?b3KLt}ML|-QHJQZVrrh)_n zULWm)z+iO^5I(y40K$Mm@Wtur;e9Z=m|ylJHbpS6>@Rz&$R6zj;BWv2MCjx7CrdMW_1}W$ z0fGNJbSef+9ftb%=KKEcpLSD`kl&|7TlD;J z;dBr^ESxVOOH?PW==8|?N~S;{a%wiDEo8r!cXxO?s^4FpTLyj9U4iya99Mp7ut)qV zDAPM->0S!+435*$L^LVz)5Ir zo>%lkg`|{^4bu;J>+$vioWvkA8{g&H=K6{--bToDhzl5fYhRHxJX0B<{`xj6m40UT z6Sl_k&}cwJCwzLKs(?9TG9C79_yEnUBVAHgjB!(EF!W3M!8EYs%ax+JC2nF8%O{)imhFpIcF5(NuR# z0~Khk#4e?L z%YzM$tVv#^l7BifS~u)ww5#!XMnHh`=HSnytJkjC#AR)Z50RbisgXba*!Pm$CE4N+(u z2`aVDOt;u?#vdP;bc)X1MZ5M0O>YvrEFUE{Ha*(khkC#(c~NE&H5sX?ooIft3I0XC z2yn`|l;hqqAeD{j>K+>#D`@4wk09t zQ6f7$W|f-dohxqF54U7GKCGFY8liZ|NRh^sTxnSLe*J=@@fmHm*spA%j~_j6ePCCR82BGm{g)g8` zsEfO-YC&7y{x)g50r5A-GBg#$y&d3axA(=ZmSp)2Wh1wO3TPximPM1W0WA9a_U1! zQpUFf)p_sUNkuNXn4N7SmtM5(xm%@h)OsTSo=2qgUT^xnk#xegOk>$ZroNfvnCs&5 zA@r(j-X(1n09GXoSSmhSI~iQ-YzL0o0xE}A~joRtVe2nKx@A=SuwHy zvtcB-)bqCMQe}o-s#0uFT=9#Uk~~8qkrYbHR9(GV$y{;Gvgzt>4_^14WP8^^K?beq zVgR8`EG8)_Ns0s0GXD@K6(6D~UN1GAfSU5+^TXF;ji;g6J9jumd>P$+V7TO4cZ7z! zKrpW9WhvwS8hAl6lCc72tXgGMH1BP(aj%~oex*`aSolN^*!PgB@|DE|ubv@Q&UFpX z!D?&MVmFH$Ft}Y_W&18)nt8K9!|=+LO&(f@d!-lmR2ZFlZ}4zSnVK*wGFY+xp9wd&+~fH}$n!Q)F;LFS@o*)_*4aHw=GQwnjyGQf&)h7_ z*Q~O;*CJ3p*p%@gG_bEOe)ZC!p&?~RsCk*eld4HSmDx3X)8L4Ra=vMD^CTZv&!Ukw zI~#?L_z1BlpH4LdUi`Az>KJuHz2(*RM_$q=i~>8#oO>Y2 zG!12gsDn{o%7YJzL$l4)o+hR42C9d`Sd9mL5iJfS!5zwJ=Tzh}n-&Fb>WhxEYU2}s zPuyOu-RYmNAG{;$GTktHQukp=QU9IYC=_Dv30r*l_E!m?KQB##Dw3^jY_d~RQ@5%= zjwwz~l}!)oeQi+G>HaF<^7;*>4Glc{;ecHqR`%?9p8w(aSnV^WazWwrg}3(4iyA)J zM!$|}tzZ0=ta5BqZvrWiM_ z9JX~<x0prNH0Tm2UXbGnS{VFhD>bv29wm?eWEX_p@zYFKu+3o81QR z1z(lNx}p76t(*kYFtyX36#I&=;_6qAYAZyZS3s&kZs1M9Hw#@AdEX~_m$<(OH&DTpOTwY|?{^ZGt53`^99%5z9Y!%2oXT3c=Q^O*@ zjJ+>gx3{EjHz=cbJ4oC#-D8~!rprqvPrXg-MRoN7uNO-sJ#q1=&eykET52*rTqxez z=S5nKG+KFgZFz>Y&6LH;P>-&n0jsU!iROx(oQu`n_ze1|vA%~%nuh*w&!6dm8V(Vc zy~|SHf&SK)kY8Bniqv8x-Ro~|Za(qI`1#B3=AFx=&T~3XuP=xii);%TA2_YRPpA8( zO@>!oSk(2j2T&fIaPE;z`&d#!D5;AoTA3GOE0xQ0xT8KA=*_v5dfqmumMmr+e{kCL zbj$5-oG&EOL)G}(CLv`>u(H$Q%oMe=>gAl*`!`Sb?40TBOtzDUWs0#6nZtFq%XW5l zYVE5k;^h?kINV(1!c%gd*2k+<4z-?AHLXm6G*!hYS~xl$8#`1CcsRv7spywE&uAyL z)L!$v)oMCR`AjxnXT2#kOKS%@CaQ$)@WQkuEI0h^qm?P%2jt6n{qbW*mq@l-=`YTF z=67~w$WTUTMiza%Gg-R+q#nZoVo6^`Hg)i@&&W<8%Sw7f4qnxk^rO>{$7C7cBR$^q z8n4EmqS@`ee~!wimU~cW7ni2gA6|Qdl$=^uV^s$r(}Itg!y{{zq-%R4G(TxTD!IQ& z-8NpU{!r6)aA*kXe#`=^jKBtpcH62>gXGE-w6Wf#VpZ8l7pVP+U>6eZbGWJ@Yas4$`=dm$wx zTiHXl?3LX&dV4$H_x;~*Ip6uuInO-zb3ec9x_-awy6*d)GtsBbPVsSzbF;9p@EIDQ zESYy8^HSyHV19RIVZE3)E*}GXDhmsb(9Xrml73T^g@q%Uh_<8InVKMQWN&2*o{S|Z z2YCB1(JU+{v;urEI8Opi8cT2|l8`cU71c7*L_AW)R@D@2>Z3>SAQ}Ww2v$L6Xk3sd z4vv@6(v&_CfM7cCCeSd_0p4CDDk1c%&^(bcIy(WS?MzQg>yar0 zX}B^3hy#Nm(h!K6G7h5w#Smah(oirI1_DDtP$&=zL8xjVU=ZnF9~ovm3f>K2i8}c! z8uJM$<3XeOAV45Govut*Q6^K|K@d0`{>ujw0i*_!XqW&Xi7NZ22NZ#dqY!;)L^4Tw z$0G(y_M;(Xm|Xu5;qCL=Es6RoQOuNq0x&)xh%$Ib)K4HD_Z#QqNAda@9FGGLya?U| z5{=5lLVja?JjgUM)r0&mT>pOk4*{6TH8uSm<1e{*d;bnWrRn=KW&BFWU!tk#Kpz6g zl0YT6KttdN6?FvkAEC^q!DDEc z{|Lt85N>3OH-;&g=#6nFfP6^qGSa`(h|nW@ktxi;Om-?iS(ut43`tZPhJ+&+qL4C7 z&B{a~9)ZKauox@^3RH)yYXIS3m>UodRmB1|)L?K8EDo#&g+czbN0D)UJC*&@9?!JL z6CkQ8U@Qa(g@e_BI5!v;h=sr~Kp2hy1ryxV;ZPj@PkVC;k-4@oUjMV7ofWs!5(on# zm07I7Un|0j;QMRjMU?*81qcjor@N6dxSg^Rm<;}yCjLbR{yPPK*wZ}-OsD^*+<(BR zWH%ZeLm}w6Gqd#{+X?iq$Wt-?|DL)kvvxSB29}w8RSZxA4#NR4Fen}fR)-J>aJ;IU zx*N0j|BAXg0s=$8ez)KMLj9L-oCk*FPGD}9AesMN%zxL3e<|kwuBHD!F`%6t@{bM! z{d4pEeD`;|DYKA2rUQHVX@XnjuOD?J-cAPK+g- z@@ovs&7TboCU^9gWQg&n+8y2v*{e}3wEG4-r$Lgy5&&SJq>B-h=P_uINt8w@L5w&J zG+eo`udiIyW;+guOx5?7sp%QgS3C4#XyGl*+#FPx^0Ys=z)Z7m-MRYQW)RronPuf{ zg>@#v@7?yzr9wrms-=i!e!(UN%RZO;Y1OZvPdK1=Uj=L|^0U_fu(~(S**Y#KzNMQ3 z+!}FasHjL0SmYbdUMFP*NyteKWHe`JEum3#Cbjj|#U}7 z!-i)4lD+fbtlYP^vsnyVbbh=5uLU05bvOUP4?9l*-aCbxx&nn)_*vcAa3)(DZBv4~ zH08TQ1$5d0y;LW6&C$)6p-^o`tiY*An4^xX$g{Sv`VY-U)v5|p4?XVZYq%G6?Yofc zT;Q|O0~nF7TMt)tYt!ZYpePqF)o)%dA*5Tw+uto9pMr~*L~55>>gv^qMI3XOKi>pb zt{i14Ju4PJyXIzQ0SfR?ga;cIp;G|RHJc@bLe+b^}a>N)uO&V-V&yP2$| zjNSENKvCrc}GWi)&E?nm~6p7@ckKJTbqqMSRo1zRz7ByeBYV;y_m@>rdyTqGt$=p~#n z%i;OP-4HP?s&YX(JqCS6_TgmKmkS(}T*>5iu!wm~IeP-I({OhVcWrXCqR{Qh$A%ny z74yB9@0Avt;DWRYHzJ;@(1%1bZG>dqQlv5A8rhtniuCDLuY)n`#@P?Te{eN~v%kN6 z*#3a(B}p}w+m<)Kg{r1~>*kjo$ zu;7zuJ_E=4ry};DBf(0AUW~OKr?xY%P<*vQoEA%&W%pE5mu@XTdv>yhGCU(>;Mn-e z8WzA-)YU%VfE(NpboQ&SAexxAf3&L=jXGQNjGI_t$SA$Z^O1C|%m(s!L#gDbWQK@F zXFv3fz%n5%*YU9meMPh(xrwn~m=zNFq~7iRitAQr$(0CZDxFjXnMB~;vQ zmZT#I`>gNJ8y-Y)P7zI7I~)-$U$a(OzL;%CPQ9#>c*DbfX;_I7W&x_=AiZ^DJ(GGP z-o%O?@M6D4#<3nO1IqqEUryS5_mBuXnP-AYQIasMA$a%@CsY|xdA}AME+$CCDx_Uaiv31a(dj^ zg9ia(Jk$B-l?>Zt#zM-XF6%_JnzEn1o*ljH9RxR=3*8;sF)=X7lBs90vuhosbuLZ7Kypv6~(TJH)95p~Aqhj7_e zx*?Zj>?|_`CoedfwRLE4!AHetQY#03JUA(ssV2^Gsl%o~RHr=)W) zW8on_H;j%Qk>r+;x$1Vy=-9}7t$p)Y>f7MhWmy*^$27K~==E9YNww$#p}_QmyyDVb zHo7Xe%iOV`lb6|Tx-wNM$F#n&~B5GdAfM(i~IZaHBuUB?vlkN%kN=@ zNl`OpE^Lj7vW6#!<4dTpaIg^`===KGVX@wcb)DkGY)j?D!(znuZ<3R_h#wn{p4tAM z>b!Yiz--{_nHYYjp1zQj1#-6cAZakTFH|a*CoXRWO)@*POqez?(Pz8?-BoTrHPu&>NQ-DafPkM5?z_^8Y|b5 zR2rvN8=+cOQ+wf?fL?l_n%c+6+pC**6zc7a=bIZ&9?V)j0o_|kj+JAx8}vvFd?i}J zSIQoYpJ&Av%nMJ4&-xe)3LBtxcpK8a+2h-Amt7yl4$a3~3W^1VrFu+do$*}s%DtT9 zCjUmv5dPc@rO+Un1W>X9$isWD-OKqp4vMVarth+h&bPW8v-A+k8x>}aW7APkZn2co zy)AJ{<%m_xC8Y#Sku3kq&DY;bRO~Zxp4fW77YC4^=1I8buO4nGD5zSWWCD+O`{@13 zJ(@n?u3q>ED5bpqp69!5J^*T(GE|FN$vG9sX!sEA$$iu)EKt{&O}xheX-cPZMZb~1 z)D-z(rn~N9=fmDlcELG{l#-Gz&9-S$<(4jadSxNI)byou{zd(A%giUG%^g2NNM6<( z+lsWU&n1T*qmM?$#$LXX{5g5KZ@g7x+(p&FTCe0>B&p;BLz8A_)4%`X>S>)|)xEp}l_4Nrl&M?&L8*8BmYoE=OyjW{;iMa(8 z`TD|=G8@bed_~kaPfew2hF9;EBf!E;nY)2geDU&G)S|qB^B&HjhhoQF_%zLhbhmuO z9~Sni*|s2CcE9QHx-U3ufQ#8(dT7sCCq$Zl1MQydUQu1;i94ZuM#XXq80n`am&R>U z#@r6pg0-yf*hKH4rHNwh^}1zu%KDGn+r^DoYn+}NiX+@f9(IORpA?VuKTCg@KV$8Z zkIk$VtLG1++$e21R7y#Th*3zh-8);L0=F2S-{R^@mz>>d@4(yN(&;LI*j5dJ__ZvLn3bP|JSz-XYVN~F!>k6@i;oA+GN9& zH^=TYrWicu>NI-0X2Y+-;E`2;2NqV0iQ-Pbiq&JmHHegM)*a@#(t0A9!uAci49&?X zDt{91pjR#tF$uMg!xVFAXG=ur-W#0{ts?Q>i@M|_yxDqBVC_k4Z+%?|r=6^cY3H+V zZ+?oTT$8IKORf^EtSGm-mCQg8^#P{Tzd zdwNadY5c^OCY@p#6La*l%|R*rW*x@__Y$>rIFuX)w>Z|qy;>ry zhD@rTdqfm#vu1c^`Ar;?#p~D;%L2aefyNevmXw@(TnEv~-`!Gj`t@Rg{^x~T>cY8u zWG^N3(5gZqB-+z6x3KBY4_JPgg2)5p51v6fuOCnG{Z?RJ*DOLjdauK9!vA{67!r0w z0c_F0`pxKOw_LtQB4k?QuETnAMf~t$gN2D+g%R$IZ>w0Xz25PKw%Ov+_WRfICMGuX zIz+nF3l1AKL~5G2rT;_kG1XJK8T;MjagERHDC6H99@Y#L9c>U`)Yw#xWGzk8B;Ye#{}lkxt5W zTTzUB=up?I`P!Shuc%rlkG=KAs`iaz)&5v5-`9yb=Uj~}X6%S%_743c3o43l&1{~H zFamFd%|Bfo?@w54A#d|bZS`=GLY7KDC_psXxL*$3ALUMcLyv#O-sGR!=yeZyGf64R zb&mYa=#-+IBu)Mxpz9g z;1tzQ$o-=8NNp2~$9j<{dZAW`F?udSc@CTqOb(liH_1OZLpbY6w^nFR>=Ex7mr_pO zbXrbVAl{d_`H1Se&8AoYJm>EpC$E-z$2>IYs_hVG-jC(yuhXuU6;ki!(vAi-adMEezdP=~w?M_#Yqsj6n%?|UKr@MNfM&a$8& f)o9`P+PceD^hHf$%hZ&e|A!6r%}|eZT`&9%03qUj literal 0 HcmV?d00001 diff --git a/source/main/web/favicon.ico b/source/main/web/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..ee38118a6c1f42489ac26af5f1a47560e1fd08ba GIT binary patch literal 15406 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 F_z!=V5(oeQ literal 0 HcmV?d00001 diff --git a/source/main/index.html b/source/main/web/index.html similarity index 90% rename from source/main/index.html rename to source/main/web/index.html index 217f6203..61635dfb 100644 --- a/source/main/index.html +++ b/source/main/web/index.html @@ -1,4493 +1,4442 @@ - - - - - - - - - Tonex One Controller Project - - - - - - - - - - - - - - - - - -
- - - - - - - - -
- - - -
-
-
- -
-
- -
-
-
- -
-
- -
- -
- -
-
-
- -
-
-
Noise Gate
-

-

-
-
-
- - -
-
-
-
- - -
-
-
-
-
-
- - -
-
- - -
-
- - -
-

-
-
- -
-
-
Compressor
-

-

-
-
-
- - -
-
-
-
- - -
-
-
-
-
-
- - -
-
- - -
-
- - -
-

-
-
- -
-
-
Equalisation
-

-

-
-
-
- - -
-
-
-
-
-
-
-
-
- -
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-

-
-
- -
-
-
Reverb
-

-

-
-
-
- - -
-
-
-
- - -
-
-
-
-
-
- - -
-
-
- - -
-
- - -
-
- - -
-
- - -
- -

-
-
- -
-
-
Modulation
-

-

-
-
-
- - -
-
-
-
- - -
-
-
-
-
-
-
-
-
- - -
-
-
-
-
-
-
-
-
-
- - -
-
-
- - -
-
-
-
-
- -
-
-
-
-
- -
-
- - -
-
- - -
-
- - -
-

-
-
- -
-
-
Delay
-

-

-
-
-
- - -
-
-
-
- - -
-
-
-
-
-
-
-
-
- - -
-
-
-
- - -
-
-
-
-
-
- - -
-
-
-
-
- -
-
-
-
-
- -
-
- - -
-
-
- - -
-
- - -
-

-
-
- -
-
-
Amplifier
-

-

-
-
-
- - -
-
-
-
-
-
- - -
-
-
- - -
-
- - -
-
- - -
- -
- - -
- -
- - -
-

-
-
- -
-
-
Global
-

-

-
-
-
- - -
-
-
-
- - -
-
-
-
-
-
-
-
-
- - -
-
-
-
-
-
-
-
-
-
TAP
-
-
-
- - -
-
- - -
-
- - -
-
- - -
-

-
-
- -
-
-
Presets
-

-

-
-
-
- -
-
-
-
-
-
-
- -
-

-
-
- -
-
-
Bluetooth
-

-

- - -
-
-
-
- - -
-
-
-
-
- - -
-
-
-
-
-
- - -
-
-
-
- -
-
-
-
-
- - -
-
-
-
-
- -
-

-
-
- -
-
-
Midi
-

-

-
- - -
-
-
-
- - -
-
-
-
- -
-

-
-
- -
-
-
Internal Footswitches
-

-

- - -
-
-
-
- - - - -
-
-
-
- - -
-
-
- - -
-
-
- - - - -
-
-
- - - - -
-
-
-
- - -
-
-
- - -
-
-
- - - - -
-
-
- - - - -
-
-
-
- - -
-
-
- - -
-
-
- - - - -
-
-
- - - - -
-
-
-
- - -
-
-
- - -
-
-
- - - - -
-
-
- - - - -
-
-
-
-
- -
-

-
-
- -
-
-
External Footswitches
-

-

- - -
-
-
-
- - - - - - - - -
-
-
-
- - -
-
-
- - -
-
-
- - - - -
-
-
- - - - -
-
-
-
- - -
-
-
- - -
-
-
- - - - -
-
-
- - - - -
-
-
-
- - -
-
-
- - -
-
-
- - - - -
-
-
- - - - -
-
-
-
- - -
-
-
- - -
-
-
- - - - -
-
-
- - - - -
-
-
-
- - -
-
-
- - -
-
-
- - - - -
-
-
- - - - -
-
-
-
- - -
-
-
- - -
-
-
- - - - -
-
-
- - - - -
-
-
-
- - -
-
-
- - -
-
-
- - - - -
-
-
- - - - -
-
-
-
- - -
-
-
- - -
-
-
- - - - -
-
-
- - - - -
-
-
-
-
- -
-

-
-
- -
-
-
WiFi
-

-

- - -
-
-
- - -
-
-
-
-
-
-
- - -
-
-
- - -
-
-
- - -
-
-
-
- -
-

-
-
- -
-
-
Miscellaneous
-

-

-
- - -
-
-
-
- - -
-
-
-
- - -
-
-
-
- - -
-
-
-
- - -
-
-
-
-
- -
-

-
-
- -
- - - - - - - - - + + + + + + + + + Tonex One Controller Project + + + + + + + + + + + + + + + + + +
+ + + + + + + + +
+ + + +
+
+
+ +
+
+ +
+
+
+ +
+
+ +
+ +
+ + +
+
+
+ +
+
+
Noise Gate
+

+

+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+ + +
+
+ + +
+

+
+
+ +
+
+
Compressor
+

+

+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+ + +
+
+ + +
+

+
+
+ +
+
+
Equalisation
+

+

+
+
+
+ + +
+
+
+
+
+
+
+
+
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+

+
+
+ +
+
+
Reverb
+

+

+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +

+
+
+ +
+
+
Modulation
+

+

+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+ + +
+
+
+ + +
+
+
+
+
+ +
+
+
+
+
+ +
+
+ + +
+
+ + +
+
+ + +
+

+
+
+ +
+
+
Delay
+

+

+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+
+ +
+
+
+
+
+ +
+
+ + +
+
+
+ + +
+
+ + +
+

+
+
+ +
+
+
Amplifier
+

+

+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+ +
+ + +
+ +
+ + +
+

+
+
+ +
+
+
Global
+

+

+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
TAP
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+

+
+
+ +
+
+
Presets
+

+

+
+
+
+ +
+
+
+
+
+
+
+ +
+

+
+
+ +
+
+
Bluetooth
+

+

+ + +
+
+
+
+ + +
+
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+ +
+
+
+
+
+ + +
+
+
+
+
+ +
+

+
+
+ +
+
+
Midi
+

+

+
+ + +
+
+
+
+ + +
+
+
+
+ +
+

+
+
+ +
+
+
Internal Footswitches
+

+

+ + +
+
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+
+ +
+

+
+
+ +
+
+
External Footswitches
+

+

+ + +
+
+
+
+ + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+
+ +
+

+
+
+ +
+
+
WiFi
+

+

+ + +
+
+
+ + +
+
+
+
+
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+
+ +
+

+
+
+ +
+
+
Miscellaneous
+

+

+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+ +
+

+
+
+ +
+ + + + + + + + + diff --git a/source/main/web/mod_off.png b/source/main/web/mod_off.png new file mode 100644 index 0000000000000000000000000000000000000000..586431db26671a95e3c50716a0123a28de5686dd GIT binary patch literal 4569 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 TAs_qW)4PGLiB7(jL+JkjVJVdo literal 0 HcmV?d00001 diff --git a/source/main/web/nr_off.png b/source/main/web/nr_off.png new file mode 100644 index 0000000000000000000000000000000000000000..e71cc2aca63ac8aeabf037b4cf94cbcd2aaaf4ad GIT binary patch literal 4190 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 literal 0 HcmV?d00001 diff --git a/source/main/web/pre_on.png b/source/main/web/pre_on.png new file mode 100644 index 0000000000000000000000000000000000000000..6b0d08cf592c03cb6de6e0e2d26093c0f731cbdd GIT binary patch literal 5403 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 RYwN3%xv@3&uHo^hzX4b}7(W02 literal 0 HcmV?d00001 diff --git a/source/main/web/rvb_on.png b/source/main/web/rvb_on.png new file mode 100644 index 0000000000000000000000000000000000000000..2612aeec688148e7cb9b0c15659c186b0fbb51d7 GIT binary patch literal 6633 zcmb_h2T)Vn)(*WZAjJ!)5ClO;Lg@~) z=~ARAAR@gN1*GH;Ua#}YeP!PKnK?Q8?ES58)xGw~B-&74lZBCo5dZ+NXltn(k?$b# zB|}e3{(hhB=uW;d;I%A?007geluEEtK#Iby(mSUedG z04ON?;gKjej2FKn#@W?F5x7=e59D`6D+0}B^d$7~Y8V$+tpEbXI6&V772t+~p@GUu z{0e?>G65Fjh2;0cx_c1eeu}^!ym0dPcp3ua{{iuGQv|9UE9AG(Gvrsp5itBPFcgH6 zkbv?-p|W5UQeF~?krwBdl#rB$NJv5?B|(xQ{bhBR?qu zUA(;Ta0tZL*B9(71;!DaAy60$_LGB*01^E?ypVn%52E0o4C)vnir|X(a>aS@A2T8y zao%2vK(eiWIDy6gqV*vD3=}zJ5I-ay0tHJPJM{yIM*YI!y$S9=l%r7)j5`L4@$e#& zvCv;wybI0?M|8pc3+i9Xf2V*PTs^&CI{wlYEcTZQqL+pb*^Qq8`Aam>#2=4=7-5Jw zZvqOV;X^i4@YowXT#bN1df^BrIGp>RsWSZ2WPV9$upGaLxvK{n=Svj*8v%?u(hH*q zBxg+q1eE|u%9uc9;W9FCsH_+i3YU=h1FDBZyE^&*161Aw3WH0@z$Ku62PGE`8tH}n zk6<(k?t~*?kz|Kmu}EhO1n=Pt4Cy%t1AM@ zK7(Cd(QsKA8CjGhMiL~8mcxMLc_*Zlq@08_6e|6vyaB2h$WG+aXJ&+_|UO#c~Hlnc_s8AEQC5a9pr%zsyjf0>7W-b?>~ z&OnYkvGzCJl$^*PQ{)zXJp6S!kRN`XFBlJUoCxI8Lx#utD*$kcR$E=g z#ATv3Bk*^dHt&g$-2Dmv<*qv4jS-rtH;xqSk6o^&Xho}Uzi{a*b+`0UH|4N0(*c`i z-G0cJ>c}9V>)91EZSo|?P)HMF-W63eBC7akgrHptyvU)=#tLGh)~2|{g>x)na+s_x zlk#0%Sxr`6U0w!rIlM6~vKd@<2+XanR|@`~wHBmUI;UnZaNXqH+f!9DPK!rZb^0!` zvE<1gg(yB`yBN`;s5W}^!19}N8`Ik{O&~*Q9i88}=4^I9!IjRDjZGbZnVzFIwA~NJ z&J+)n7ukB*65S}suV)0ZY|{+~isL zs3nLj-KxlU{U~wai(%39&n!?;s5|y2Y;3>D(_KZ6jA7>&SS5?8X(~^6(G*;EM?N_F zx^&)CKMFX~?>fK2QHoesfj<1C*m&WV2y4gGiFel>s#xIH%!XLb0+$MtEm*D95fm~J z57}B6bA=`Q0XwUOFUpi>4-idExl*&&BKknkBFu){IV$xl@`3OBw5AGCXX2PSUdv|^ zc1@D+3L)1L?z|OqHDu;e17ttc&tiWVl)^RdI8?jJ%sS{-{F#mUqADK+kWV?;b4{u9 zK_c_!Y#$>HmG)Bw<+>&{66$`oE#YH%^X+iA!*f8UwhMf?(~?0)6}0j%id97;q#F!+ zhx~UTPB4Z0o=Yx>MiEQl!Y7RUcE7)9q;Gs&P*;OxSARfbLCw(|t(y?I!!W7%IyJEM zVnG*T{mZG4o5IA8zSgO@kbvJmM25$1h2FGmE}&p!v&lO7QAs>#e;|y!Orz)IzZtEJ z#5mmyY=!UkG!}j=Gne;lr=Vq{rynD{I=~mzGLMzUdA$5R3i!~*a&tRHA>{jpM^y(6 z;5uPhK09C@sUMe3_vvZl9f*QO4<%Tb@bQyXW^WvKfIXeA_k#ekcb;zS6hj<69!(&Z0hWTgj$3l%{sZGj|EYI~% zS?#F__Nft?ZE;Elm(;U_LKfOj1isziCP zFJBfM+FPxbyt01nH@be8q;#^YZ!$ASfNJe(_xzH6j#AqrdwWNrvTdImO#ZhBDhn$& zQoGjY<n6TXtbm&v5>U6hj{n1uZaR_LH0qDz#t?|eVnDzxtmrr_1?yO<)7+FlwdVYOiW z>m!+jI0&A!qPsjVg#d{d)P9ziJ4fcw(G-1ncgCaLo9M>-(u20TNRM8+*6zbhl?N6g_|8=@xLbO+f9i4f;>FYx9-{-HcPRC; zdv^l-2=4*})s_}ryPD6iwrKVwa;@4H|hT$qSC{$H7wI(71&RFv9 zgKbMIjb!}^n@dJE+*|Pfh>Z<_1Eb-M$IJ%OBWK)HOv@<%R419+K0+zG;33 zf?>-ahWb`RT)|UQ5QDAMT(`J{6cG*8r&Hd(-5)>Emsg2c8usYR`hQx%)Ez{hVcy|< zjsG?m^ew4Zf;hvzU+%r0YH-4n#LHxJ$GauTJv%eE6|^^}Wp>|(RYt#+Z_+DB{^YcUj&&mw(qm+{$rKkUjNE!xhd4<04nu;;F=P5{S zrkamoQ0moC&dFLqDoQ`M3NaE*L1STcKxPT%^V7=yE&b&id`c7N9T zATLYSmb5LvmGI>~xqlJe*KVhEe&L#&5aLr>lHXjU)CzN&eVdh=bRK>8f;QDm>GZbS zRuIXV;fzLE!hu*B)6*ld{U8qBiNWpubAajE2^-PTV*TQl$-pD`kJ0n~wk(z^qhr`R zc9KDh?Y~Li%dMAFQH`OEyp>Xy0Pjq9-jlP>yujLLDhYdkKKGujklOE2VfLBM3!BWr z_gLa)4-1``w`J%@nMsT7FsC$fdlToOG;^pF9kJ-G4<7Ue%dYHvetTWd1P9GOnaCwb z%x3$XPa|md7MR>g5#vbhvnH}Nj_N2rY!tHd!!YX2ihTE1MJ3E7=x@}u<@$YNUS5pV z9&depx2oo_a$x;=qWw%|wmv%#kz-upaaqlJ2ge#IOgCswqkAv*We45Wpc|@>Ekzlh z{`S}byS+NHB*^9vb`x4<6DJ)-TdmX&FHS)svR=tl#^S>}ZO3k)wnCD;}p_3+h6+K^=Hll1u$vbyTcavBtT={C=Aag%i{idijYBOfi z?Kw{;o8}cu&rn@+DOL$e2R3L+$wMFl!do=Nchk+eZz(TkWfx+h9^)T!YqSbkzRIwu zg7nix2(f1k*AOgq7p}#rNX)$58+=58VhUD5bFt`i#<8XG++V5HQ2PE&rA13WV(g0) zKUVV{FMZ-Ln~;Xp6`Pe}tkDydy-aTII~fKG7f-7KRBX*hPxEr_oAAn~?`ehYe|&#; zZ>sR#RC(R14nAFoU?<9%YSlatV%$<6G|BJypwAumUU~iz;|wq_GCQlt^IECC0UIMN zS5|z8Y-)H#$8yv1$4!O{-z(o*?e{kkro%kPMid97O2x}1c(nODDXDCsbGfG`_SX!? z@zbP6^ukb}pf|IZWkye*C9{oL*?zw9^}WlJErI5XZ-#Z=`zaZPC)@-VJnoBieu~iz zdG9N7^OT5%n$%YWLT)RxyXyAQ_h(zJ;e|u2r5Sj1VQJEbk!HFc9ICoJjfvJ5wd2mLc=Oq`1 zsy=&C&3Fc%lZ#NnQhajcP)*`iWt!v7&kA1Z6WRCTcWa#^{63{Uch7&U-mAC0-tTn* zVqm@i$;}&M(G)F(*=AYyyf7Q$%_xe&ysl_a9rtvFQ&9z$b4JCpau|hgr5guvojx0v zpBuV|Nqn^=i^!?xfxhER!i<&gJ|nQ2h*iU~*m*@4B=)VUHx?qen4qNycI+v1xCcjK;T~ zCNVbGvS~sFMcX2hLWB6kZpJ&*&F*dFbJj%KS~H>b`&bRr+4^||3h&X9664;c1~|FM z>kgWCScT8c?z5e92oRV_vY%|aaNQL@Fa?9Au6HJ8J?7oTk%G7ZYrD0{d`bg39F28Y zp`%UvL?bZ$x&7&_8f-z+TAlNjd}N#XZoHcFo!4V%mlsh?OGz%g_M(g_5AlkY2#aFl zXBRy?H?HaRp0u}}T}YO>ji~evj8;Ax^hnSbjx!Jf@Qv8Nk&`krQ}B)VF$B{y#W(0G z7hjFv@+5cQgS{mGy0880(M%t!iXL!F;Tc)IYSe=3v0 zQDJA$wmsi8)wxR@YoyUPL6IK$k|X90FosITi1J$l-Md|1fwhZHPZ)BhHZlF%=LnbVhD%5d+%@TFp!zyp}K(N{I|J;yJos)h46bj++?ogd8lK5zh_1u|fUQlV?@OumVxuLIpz%&^x4rk9j61lS3Ut>NCo z5v8FUwRPgcONXK%@Jr&pab7Q{cPkRX>l-9O#5MaCo#u`HJ$Q31O+-a%UPaS%EcYV9 zMq9)TTg|-RnmFh8nQnjs*i406nt8Ow_vty^&PF3CC`OD)l*%*~XFnOyUDf7Py(nB= zd~~o#EOXy$V5{5zObK9;Y1@24Yg@~9cS|8q(l@NyW93UvZKY6RR)GpvUK;j;LvOal z=fDvE==!5p>X7YjT|f=SAiQxkDq!}5{1@7NTv2bZH&%B@oxT(xCnY;TnK&ZKK8!|SMN$?u>2W1??p9jP>s?$#w5DU=gStzxmf zHg@)HxoS&h`QE%SMi;-hEiIM5C~i8L*t2!u7f-eS?4X)1!k?6n>1W+tSilI+8hI@C zhIS3{h4>1NAF-~Kyv2Mz^OBGz7*@5Zr(k%uKnZ4;g#Zt!?37UKeheT zyRS~ycJv#vr`ta%Jbz!c{YFE`?ijV*lp=0<_UKX|z@iAF@U_D+aDA=5=Ixuiw?bF% zh*R^pDy{Y$0ngP`C!YK`s*8I=Ae1($*~25LpVU{)Ua3@e*9Vs#qU`N~tr1Tppf2Hm_Y6y+!B>ooS z?MF);P=zYr;nE7u;p0uPFDNteEnG8jv94JwY+ZJx_*Rr!XMNk|g*x^0(7um}WnO`A zy5)O(7x&U7?7X^=U^nHVY4c@s22-JKo9oJ0hc!HOcuAEX8~(cP88WAA>#`b4Nb?>)|z( zsv~%leXiA2dcvX4`P}ox=HJTw6KPe`apMr^YaWqQyfCjKjPt`nvvAR3Fg8%5~W~n*fZ{U+O*?8W3)B& K)r(XeZvG!{bgIAr literal 0 HcmV?d00001 diff --git a/source/main/web/tc_off.png b/source/main/web/tc_off.png new file mode 100644 index 0000000000000000000000000000000000000000..4d7e4cd1754e10720337b05772f72f05099977ab GIT binary patch literal 4983 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 W6}Kv_MSQk?jaix=G$}OlI{6P=K3O*a literal 0 HcmV?d00001 diff --git a/source/main/web/tc_on.png b/source/main/web/tc_on.png new file mode 100644 index 0000000000000000000000000000000000000000..4aeedf2d53425e05c4b13d7b92a92ab1775d2541 GIT binary patch literal 6891 zcmb_h2T)Vnx&{SAdXpwd2#U0j0)Y^kGyy5nM4C!S0z?P_LJ1&61f)c;ARtvbDo6(@ zigct3NRi$Iq!*QTkQY53=id8nd2{DwW@oRx*7tvZUH{sXL>L)rGc)irP*G7a>*{El zQ0^eg1*fN@d=I4AIa6*YU3DypR8)+dKQ3yj#AIG7D!K@qnT3aifj$yVz)Pbr1UsxW z3GYflQ&B0Yl3Y<}C#(m+4(ot(Q3kHp)ByoFj56>l+yG+Ws)2RH>G-;1O??f`(7sM+ z1q@JC1)xMiQV8%^4-|lecXlBnNy@;VyhzIU$21rS_zCfFQU3vQhvT1SSiHz`!sV2nI#M5lC4m;MWI8(dUk_N1A9}{H2ZZ zqzrWQ@Nh+f!QS59(%v%C1a}88R6#-E7Y79aBKo*^phzGWqR3winph&*9p~zSBe(#5 zFrw@To*v3TimiV-fp`5)>q7h$C`!n{B$O){Dh>JJ)K4G={Tt`%>F)efIR*{JI%Dxz z7Y`x@3;m6CbtHHYh>nDRLH&FA?-WpiYhdtO$3L|NkN>TL=%M9BapPA&{wbPh=HrS5 zn_!6qPj@s{%Zp;B$PaH^ks9t;ln24xj6iVyD^*5+nGAr*O3MSpuHsxU1aG4F-w0qe zQ65-jASG*X5EKG}!Ofs@NH`n`flET6NC@Olr~v_kv-kN2D8dY?fRvF%!XbYLr4$VY z<$?N-UQNP7qt4w18$0m)%x&>%QO76wAuVPrvYCfQh-5W7{p)lngq1xkIeoh zkD#2yNQ zq2=uC6d>|4GB8T=|CQ`F4*RS8{u|SOaibkkE)G~qvjhYGduRS{mH1Dc`QLl# z|IZolj}G}~g@OOE_3zzt0z}3nfnOl+)u&y@CN16&Jm( zrka`KM0uiL8CJ`GLG?9{AJ!HUZ!C-vyC-U% z2W+>h?2Hj>PJ4V$uzJz0a;3&=^~T}S)yc`qfbxMWiYg5^FRd^<(ug;TzSzy+xfwI# zy21Z83c(n8bfjz4PGin->RBK9p7Xq_khSm9l>V#&&~&MsA-Tslw6hX|L^|A>stqiA zsr+Q0+lmjc6d~nbmuxb6BX_XeY?(&!>&LH`NoBm`=n6vk#KyO0pBxHx@w4|$d<_<@ zaMp!J6(Y~M2G?Ni`W60B!F-y_RQPJ}W)QU!0xYJW$*=a&#Nqb}E6Mjk zB6UF031D249JGFFE~h>9D5JNIJ5l|z%#v#D>SqN^geI^Dyti5$Y1 z8Fi+4bfy*QrwWxU;O~5hK?dwQCbh^qkDX#~J+m&E^=7s23uYLMnQGgQoRB=m(@Y&c zzpEFgN08d=9(5w)ncd7u3+t@KM-NWDac>2lXQ^*epw?|AuH;4+EbvWuFNj%t@#rL` zdS8*%PSx8TReedEtBUO+&_{G6a)K4hHgD}tpt=M7__DcL#O$N9ZY>j|{+LVWo^?18 zQY?(0rCB)TBv3|P z4XG{?zf3Bg@Zr`MJ@m>g(+K-(yM^*Seff+IH*DrIZwR25X~RD8^~{iuf7%_dJ2Sr( zXq|1s`0C&|QRzS@>D@NNnD06we!^^OIEpV=U9yeV{B{2Jz+(sYn3J~O^UxTR-2%m% z<6&n6eV-?BSH0(?*zpUa$yy zb|)_Bdr?~z0dzcC%8dy>xTsU@E*7wS*@?W$wxlf}Y80;H{dL|_GJCP7`(zik<6Iqw zDL+$N30bPt#ueWQ@@BqW;laU(koLc-WApWcXvj65(@Jr&b>QNw!&OY}i)GZf%_% zt;ga!*yjpQGTu0xl-%`cDPCsr#^W>Z`C~b_m+%0svsCPTEN6j^1+FSWM!Egz>n{z4Vhdc&b%J9JNBeMA4-M6ySv2`TE?HQvGmB#L!zT*LaQ3fA;T?GHe_(?$}HNu{WPgshD~V zczEMcoQT9(0o7sK`EWGu(r_Jt-9p#^uOjnsCrvb3z5Zc4hw3d-sCuuhdi`i^;XwY- zlUK*qZ81)7r-kZ=)>9i3&b1G)OgJD2?AT}b@*&n~vw@Snb{JDlC*AFPHT?A3Of256 z4`*I$wdIk^Hb3mu)Y;_pzh}Zn?rr6cb`CD^o>`lE+`PvG=KGY+RS-{_N>#Xi7-5HT z3i3|A=+}w0R(*ftC1B}Jwh8K$MTF115JyQ-^E?s80FR3149;s#U*N9V8KfhEWm4Ktvl14x8wuMI#mO&$*5SO9F^vp^x_U<`Rbl7dK=y{D~fSMolq zq}L7gylpu(f8Yjj^}Xb*PhkgDv_KI7b-cx@t7KUzh0H z7}vfkY<$s^l~-*~0=9_7gsVGWb!)#94`&(eP)_ej{_rg88Xz2QdRMAht><7(0M#== zy`&9lrtVS<$ZeUuacxS{Tl#?~)2t$M|6R~MpVqE4{+afqyE@kDHPcn!j>E4H56uyd zOjDjTrrvX)%}N>D?!9aOd_6F*FBx^&Z6uIduzp7OM2p+O5$|k9;I(rSj&HmcU@`u< zP?G`I@w*p&)^kr-CU#gPvd1|{)op%OdwKAlK3lC3eMAf`9Iw*1d2iz}4yc?|4TGhI zipNBlr*tG)B@ z_(AK5T?a30+|ixem(SMjU1J}bFwxow!uDH6mP&W%KIUny*w(W-@;k?!Bhw`QejGHk zbWkIy-Wut@c)8J6E*3iL+ww-)A*0=Re zeU1c5oE$Ao73EbXJOJ@9$n*>%z8n@guwJL>Hl!uGWfg0cB| z22}Eojr!yj`sn=9OBG5fr!I3jSj6paHiBj#b7@C!LeWpeN~($`M6S0XQw1gyl{UMu ziA43{=dNC>*%I<@{HE2f4>-TiT*W-l-_okmjJ5Eg9G zZd?AYP6^s5l6IMQg3Eh4gLO(a3q-HC)n3ujSD%G@BN#IO0$3}&ab3mb7_ppGo?H<- zXl0U}MfiH`QX4EC$$h^pYRudE&S}-ut(F&hu@dYo=>f1$#o)q?6hGU>I5mm#pyDp< z_qCT=<|C#yU!AaYVH#zCdNKWn#L*`_Zh)I&|r#ZWe3iW59L&!TL-_=3=&4p;bPLq!H2g6tzccSfRda%y#vd+`1T>7Ib1s00c9rGO@GM zzJN~ey4@-;$Qb$%b*tn;G4E~o_(!vAC~TMhheZD!g$Bc?WNC>4Kil5*OXbu_2>V=o zVL-W4HvE#^Ot5zP#uIy-6*Z34hwJco^huG+K~IzIvR_(kveXxt$ZFb>lmO&YgWqrk ze%4N*eb3o2miEnx4Mi~WRjXPH;YmiX#MC8=w(NBQx@uIxz_io5N~C*a+E;hvgI^`@CZ5qH0%_;Z%JXyy$*<1U%gTFl+z943`UM^WM?bR41rkmIeZ_c)>M-C71PP zF2mQ*{f2f{nR96;$tP2Ba*uYTL>aC1G6yd5KK9a)7ck;uut;d%9n+4<7Xjx&pUd<& z9_3cNICO}}g<*=Goqta6-nWAILnQI|g5aV2s{N;dqMO{uHQBkd*7}}KBo57nTA6bQ z&EI}-;gNmn-p8yHx9h^^1ExRl>_2|_;c@zXK%Wks-Kp%}vRFBCY0A`-qA4{dHPkB& zC*$qTLq(hb>q*A$2wHWv^9dKACD66zbGOpEmXzLyk=VehM@3INc(;v)Mr_NwSH~6W z71ffTQWJ#5NR=LEXPzB+!S?i8BQA0TKRJYRvzl2dL3ET7f_dNX@oOv~N?n1ORg1h& z=*3xa&T)1A^8>N@vwR;pICxHVzge56x^%}pGW1!jdE-Lc3^DzLJa6Q2QC2>Br>Jpt zHY7Lehxh5}zTF)4(|0Ru8KN7Ef_LH78D|$x;ph~lBcI{Pq;I{V9i?$5UH9`z-)t9`(QUsGArm_N>5DwNuwIO82h&)5SpexY^Dw}<;;WytdT*>?oF-I-j& zzGR-rJNq6TTMV3j`YS`)3AfUQ`&y~Z{d?+X?v(y|ZbuX*kvU z+{Hv>d8907bgZIZWmJ9Yk(a4H*W?uvf9A&Y@U~!Va0h{Zs+x7s5mb|`@a^675Unq9 z`BV9p1PmiMd3v+(j|1l65B+(H$z3%SmH}PJ;Es?djVIkKx8I$p*nSy9-fCbSkutOv z?T+A0>U5Z`8}|(ftlXhh*^fKEa&(tUd4 zvSeWCMPj@083v=4I%zVU>WTEN&x?tz5ywv^c{h)JDQ3Pke^^+8NP;4`i)<>%&L^v; zMbP1Mvd(J*j=-#bIcjGJ*ipho{e|%r4aQ{m9pfj49D}>+3R#jFj z5GY!n;YeW-^V^S@bz%hNKKJY5Q6a4h@Yr0LkMw4B8>o5FS(^x}%GDv(!;pM#16>-q zo(svg*YZQduVm~orfqAlv7+CaYG)fWZ+$jB@Af3aIze(O)WgnVEM$(UY9~ht6YfxIaZake* ziBE^7Z5Gr$FO_{X9mF~guLmDZh@JMn$VBE%{yJ_t1OKup|6odgT3ey<4Es|XW{B9E zy^nm~Y>LsV!;QYd^f!~#%fbLb(+1Rf{d`BRM*;_Ls^5mK3R7O{z>_Kr7trwgKPnJT7BsA*04HguCQOkvZVY6i58HQI}%G7LgbVI1?tvpBNQa zM_QK@qpgt!^;&r(->PctNyU|JHvoldon-t7XEH4MoCDG9L5&BaQazS8PaE8L`{fI@ zqp<3|hZ8-tm?%F-FyA=pz>RdgtQoGp?D=>O79JJW@H8EHCg`rZ z)}x$gaKI9csj432w%yLBPpNNvR-Lvs{E3=cDS=#52X=s&A*|= z20D7PkRC3LBw(04oq*pnjgfDf=eqvbjJ>CbZmG}`@GHJ!K*Ram^Yk(7))jG;$?7K; z+_r4hEo4`!UnTgN6zG^Mft5c3CB!ev-Nigvd zan4_7)1#H8(L#K;OX3N%h2q+y&+*HXFSYHN3xYGFE`MVXtdR=8b*t8WBKx+4zP$^rR**S^+s$!9 zf4J>s@4(R{kizklxUWv91H-(oWr)ysJJ95Wdw+ajZhq8QH7G1jGXPINer@p-Pz3Rg zr7ORdgojV;wst!ZWOB|<6|{XGoAccL&bJ&;&l+*e*ic@vf6}0|B~2kskimdGb0}}+ ah<2$e4$epRZ2a+el&+Sc=1Xuri always contains the full requested path, e.g. "/img/amp_off.png" + const char *requested = req->uri; + + // Remove leading '/' so we can compare with the embedded symbol names + if (requested[0] == '/') + { + requested++; + } + + // check the file requested + if (strcmp(requested, "index.html") == 0 || strcmp(requested, "") == 0) + { + extern const unsigned char web_index_html_start[] asm("_binary_index_html_start"); + extern const unsigned char web_index_html_end[] asm("_binary_index_html_end"); + httpd_resp_set_type(req, "text/html"); + httpd_resp_set_hdr(req, "Cache-Control", "no-cache"); + return httpd_resp_send(req, + (const char*)web_index_html_start, + web_index_html_end - web_index_html_start); + } + else if (strcmp(requested, "img/amp_disabled.png") == 0) + { + extern const unsigned char web_img_amp_disabled_png_start[] asm("_binary_amp_disabled_png_start"); + extern const unsigned char web_img_amp_disabled_png_end[] asm("_binary_amp_disabled_png_end"); + return send_embedded_png_file(req, (const char*)web_img_amp_disabled_png_start, web_img_amp_disabled_png_end - web_img_amp_disabled_png_start); + } + else if (strcmp(requested, "img/amp_off.png") == 0) + { + extern const unsigned char web_img_amp_off_png_start[] asm("_binary_amp_off_png_start"); + extern const unsigned char web_img_amp_off_png_end[] asm("_binary_amp_off_png_end"); + return send_embedded_png_file(req, (const char*)web_img_amp_off_png_start, web_img_amp_off_png_end - web_img_amp_off_png_start); + } + else if (strcmp(requested, "img/amp_on.png") == 0) + { + extern const unsigned char web_img_amp_on_png_start[] asm("_binary_amp_on_png_start"); + extern const unsigned char web_img_amp_on_png_end[] asm("_binary_amp_on_png_end"); + return send_embedded_png_file(req, (const char*)web_img_amp_on_png_start, web_img_amp_on_png_end - web_img_amp_on_png_start); + } + else if (strcmp(requested, "img/cab_disabled.png") == 0) + { + extern const unsigned char web_img_cab_disabled_png_start[] asm("_binary_cab_disabled_png_start"); + extern const unsigned char web_img_cab_disabled_png_end[] asm("_binary_cab_disabled_png_end"); + return send_embedded_png_file(req, (const char*)web_img_cab_disabled_png_start, web_img_cab_disabled_png_end - web_img_cab_disabled_png_start); + } + else if (strcmp(requested, "img/cab_off.png") == 0) + { + extern const unsigned char web_img_cab_off_png_start[] asm("_binary_cab_off_png_start"); + extern const unsigned char web_img_cab_off_png_end[] asm("_binary_cab_off_png_end"); + return send_embedded_png_file(req, (const char*)web_img_cab_off_png_start, web_img_cab_off_png_end - web_img_cab_off_png_start); + } + else if (strcmp(requested, "img/cab_on.png") == 0) + { + extern const unsigned char web_img_cab_on_png_start[] asm("_binary_cab_on_png_start"); + extern const unsigned char web_img_cab_on_png_end[] asm("_binary_cab_on_png_end"); + return send_embedded_png_file(req, (const char*)web_img_cab_on_png_start, web_img_cab_on_png_end - web_img_cab_on_png_start); + } + else if (strcmp(requested, "img/dly_off.png") == 0) + { + extern const unsigned char web_img_dly_off_png_start[] asm("_binary_dly_off_png_start"); + extern const unsigned char web_img_dly_off_png_end[] asm("_binary_dly_off_png_end"); + return send_embedded_png_file(req, (const char*)web_img_dly_off_png_start, web_img_dly_off_png_end - web_img_dly_off_png_start); + } + else if (strcmp(requested, "img/dly_on.png") == 0) + { + extern const unsigned char web_img_dly_on_png_start[] asm("_binary_dly_on_png_start"); + extern const unsigned char web_img_dly_on_png_end[] asm("_binary_dly_on_png_end"); + return send_embedded_png_file(req, (const char*)web_img_dly_on_png_start, web_img_dly_on_png_end - web_img_dly_on_png_start); + } + else if (strcmp(requested, "img/dst_off.png") == 0) + { + extern const unsigned char web_img_dst_off_png_start[] asm("_binary_dst_off_png_start"); + extern const unsigned char web_img_dst_off_png_end[] asm("_binary_dst_off_png_end"); + return send_embedded_png_file(req, (const char*)web_img_dst_off_png_start, web_img_dst_off_png_end - web_img_dst_off_png_start); + } + else if (strcmp(requested, "img/dst_on.png") == 0) + { + extern const unsigned char web_img_dst_on_png_start[] asm("_binary_dst_on_png_start"); + extern const unsigned char web_img_dst_on_png_end[] asm("_binary_dst_on_png_end"); + return send_embedded_png_file(req, (const char*)web_img_dst_on_png_start, web_img_dst_on_png_end - web_img_dst_on_png_start); + } + else if (strcmp(requested, "img/effect_icon_amp_off.png") == 0) + { + extern const unsigned char web_img_effect_icon_amp_off_png_start[] asm("_binary_effect_icon_amp_off_png_start"); + extern const unsigned char web_img_effect_icon_amp_off_png_end[] asm("_binary_effect_icon_amp_off_png_end"); + return send_embedded_png_file(req, (const char*)web_img_effect_icon_amp_off_png_start, web_img_effect_icon_amp_off_png_end - web_img_effect_icon_amp_off_png_start); + } + else if (strcmp(requested, "img/effect_icon_amp_on.png") == 0) + { + extern const unsigned char web_img_effect_icon_amp_on_png_start[] asm("_binary_effect_icon_amp_on_png_start"); + extern const unsigned char web_img_effect_icon_amp_on_png_end[] asm("_binary_effect_icon_amp_on_png_end"); + return send_embedded_png_file(req, (const char*)web_img_effect_icon_amp_on_png_start, web_img_effect_icon_amp_on_png_end - web_img_effect_icon_amp_on_png_start); + } + else if (strcmp(requested, "img/effect_icon_cab_off.png") == 0) + { + extern const unsigned char web_img_effect_icon_cab_off_png_start[] asm("_binary_effect_icon_cab_off_png_start"); + extern const unsigned char web_img_effect_icon_cab_off_png_end[] asm("_binary_effect_icon_cab_off_png_end"); + return send_embedded_png_file(req, (const char*)web_img_effect_icon_cab_off_png_start, web_img_effect_icon_cab_off_png_end - web_img_effect_icon_cab_off_png_start); + } + else if (strcmp(requested, "img/effect_icon_cab_on.png") == 0) + { + extern const unsigned char web_img_effect_icon_cab_on_png_start[] asm("_binary_effect_icon_cab_on_png_start"); + extern const unsigned char web_img_effect_icon_cab_on_png_end[] asm("_binary_effect_icon_cab_on_png_end"); + return send_embedded_png_file(req, (const char*)web_img_effect_icon_cab_on_png_start, web_img_effect_icon_cab_on_png_end - web_img_effect_icon_cab_on_png_start); + } + else if (strcmp(requested, "img/effect_icon_comp_off.png") == 0) + { + extern const unsigned char web_img_effect_icon_comp_off_png_start[] asm("_binary_effect_icon_comp_off_png_start"); + extern const unsigned char web_img_effect_icon_comp_off_png_end[] asm("_binary_effect_icon_comp_off_png_end"); + return send_embedded_png_file(req, (const char*)web_img_effect_icon_comp_off_png_start, web_img_effect_icon_comp_off_png_end - web_img_effect_icon_comp_off_png_start); + } + else if (strcmp(requested, "img/effect_icon_comp_on.png") == 0) + { + extern const unsigned char web_img_effect_icon_comp_on_png_start[] asm("_binary_effect_icon_comp_on_png_start"); + extern const unsigned char web_img_effect_icon_comp_on_png_end[] asm("_binary_effect_icon_comp_on_png_end"); + return send_embedded_png_file(req, (const char*)web_img_effect_icon_comp_on_png_start, web_img_effect_icon_comp_on_png_end - web_img_effect_icon_comp_on_png_start); + } + else if (strcmp(requested, "img/effect_icon_delay_off.png") == 0) + { + extern const unsigned char web_img_effect_icon_delay_off_png_start[] asm("_binary_effect_icon_delay_off_png_start"); + extern const unsigned char web_img_effect_icon_delay_off_png_end[] asm("_binary_effect_icon_delay_off_png_end"); + return send_embedded_png_file(req, (const char*)web_img_effect_icon_delay_off_png_start, web_img_effect_icon_delay_off_png_end - web_img_effect_icon_delay_off_png_start); + } + else if (strcmp(requested, "img/effect_icon_delay_on_d.png") == 0) + { + extern const unsigned char web_img_effect_icon_delay_on_d_png_start[] asm("_binary_effect_icon_delay_on_d_png_start"); + extern const unsigned char web_img_effect_icon_delay_on_d_png_end[] asm("_binary_effect_icon_delay_on_d_png_end"); + return send_embedded_png_file(req, (const char*)web_img_effect_icon_delay_on_d_png_start, web_img_effect_icon_delay_on_d_png_end - web_img_effect_icon_delay_on_d_png_start); + } + else if (strcmp(requested, "img/effect_icon_delay_on_t.png") == 0) + { + extern const unsigned char web_img_effect_icon_delay_on_t_png_start[] asm("_binary_effect_icon_delay_on_t_png_start"); + extern const unsigned char web_img_effect_icon_delay_on_t_png_end[] asm("_binary_effect_icon_delay_on_t_png_end"); + return send_embedded_png_file(req, (const char*)web_img_effect_icon_delay_on_t_png_start, web_img_effect_icon_delay_on_t_png_end - web_img_effect_icon_delay_on_t_png_start); + } + else if (strcmp(requested, "img/effect_icon_eq.png") == 0) + { + extern const unsigned char web_img_effect_icon_eq_png_start[] asm("_binary_effect_icon_eq_png_start"); + extern const unsigned char web_img_effect_icon_eq_png_end[] asm("_binary_effect_icon_eq_png_end"); + return send_embedded_png_file(req, (const char*)web_img_effect_icon_eq_png_start, web_img_effect_icon_eq_png_end - web_img_effect_icon_eq_png_start); + } + else if (strcmp(requested, "img/effect_icon_gate_off.png") == 0) + { + extern const unsigned char web_img_effect_icon_gate_off_png_start[] asm("_binary_effect_icon_gate_off_png_start"); + extern const unsigned char web_img_effect_icon_gate_off_png_end[] asm("_binary_effect_icon_gate_off_png_end"); + return send_embedded_png_file(req, (const char*)web_img_effect_icon_gate_off_png_start, web_img_effect_icon_gate_off_png_end - web_img_effect_icon_gate_off_png_start); + } + else if (strcmp(requested, "img/effect_icon_gate_on.png") == 0) + { + extern const unsigned char web_img_effect_icon_gate_on_png_start[] asm("_binary_effect_icon_gate_on_png_start"); + extern const unsigned char web_img_effect_icon_gate_on_png_end[] asm("_binary_effect_icon_gate_on_png_end"); + return send_embedded_png_file(req, (const char*)web_img_effect_icon_gate_on_png_start, web_img_effect_icon_gate_on_png_end - web_img_effect_icon_gate_on_png_start); + } + else if (strcmp(requested, "img/effect_icon_mod_off.png") == 0) + { + extern const unsigned char web_img_effect_icon_mod_off_png_start[] asm("_binary_effect_icon_mod_off_png_start"); + extern const unsigned char web_img_effect_icon_mod_off_png_end[] asm("_binary_effect_icon_mod_off_png_end"); + return send_embedded_png_file(req, (const char*)web_img_effect_icon_mod_off_png_start, web_img_effect_icon_mod_off_png_end - web_img_effect_icon_mod_off_png_start); + } + else if (strcmp(requested, "img/effect_icon_mod_on_chorus.png") == 0) + { + extern const unsigned char web_img_effect_icon_mod_on_chorus_png_start[] asm("_binary_effect_icon_mod_on_chorus_png_start"); + extern const unsigned char web_img_effect_icon_mod_on_chorus_png_end[] asm("_binary_effect_icon_mod_on_chorus_png_end"); + return send_embedded_png_file(req, (const char*)web_img_effect_icon_mod_on_chorus_png_start, web_img_effect_icon_mod_on_chorus_png_end - web_img_effect_icon_mod_on_chorus_png_start); + } + else if (strcmp(requested, "img/effect_icon_mod_on_flanger.png") == 0) + { + extern const unsigned char web_img_effect_icon_mod_on_flanger_png_start[] asm("_binary_effect_icon_mod_on_flanger_png_start"); + extern const unsigned char web_img_effect_icon_mod_on_flanger_png_end[] asm("_binary_effect_icon_mod_on_flanger_png_end"); + return send_embedded_png_file(req, (const char*)web_img_effect_icon_mod_on_flanger_png_start, web_img_effect_icon_mod_on_flanger_png_end - web_img_effect_icon_mod_on_flanger_png_start); + } + else if (strcmp(requested, "img/effect_icon_mod_on_phaser.png") == 0) + { + extern const unsigned char web_img_effect_icon_mod_on_phaser_png_start[] asm("_binary_effect_icon_mod_on_phaser_png_start"); + extern const unsigned char web_img_effect_icon_mod_on_phaser_png_end[] asm("_binary_effect_icon_mod_on_phaser_png_end"); + return send_embedded_png_file(req, (const char*)web_img_effect_icon_mod_on_phaser_png_start, web_img_effect_icon_mod_on_phaser_png_end - web_img_effect_icon_mod_on_phaser_png_start); + } + else if (strcmp(requested, "img/effect_icon_mod_on_rotary.png") == 0) + { + extern const unsigned char web_img_effect_icon_mod_on_rotary_png_start[] asm("_binary_effect_icon_mod_on_rotary_png_start"); + extern const unsigned char web_img_effect_icon_mod_on_rotary_png_end[] asm("_binary_effect_icon_mod_on_rotary_png_end"); + return send_embedded_png_file(req, (const char*)web_img_effect_icon_mod_on_rotary_png_start, web_img_effect_icon_mod_on_rotary_png_end - web_img_effect_icon_mod_on_rotary_png_start); + } + else if (strcmp(requested, "img/effect_icon_mod_on_tremolo.png") == 0) + { + extern const unsigned char web_img_effect_icon_mod_on_tremolo_png_start[] asm("_binary_effect_icon_mod_on_tremolo_png_start"); + extern const unsigned char web_img_effect_icon_mod_on_tremolo_png_end[] asm("_binary_effect_icon_mod_on_tremolo_png_end"); + return send_embedded_png_file(req, (const char*)web_img_effect_icon_mod_on_tremolo_png_start, web_img_effect_icon_mod_on_tremolo_png_end - web_img_effect_icon_mod_on_tremolo_png_start); + } + else if (strcmp(requested, "img/effect_icon_reverb_off.png") == 0) + { + extern const unsigned char web_img_effect_icon_reverb_off_png_start[] asm("_binary_effect_icon_reverb_off_png_start"); + extern const unsigned char web_img_effect_icon_reverb_off_png_end[] asm("_binary_effect_icon_reverb_off_png_end"); + return send_embedded_png_file(req, (const char*)web_img_effect_icon_reverb_off_png_start, web_img_effect_icon_reverb_off_png_end - web_img_effect_icon_reverb_off_png_start); + } + else if (strcmp(requested, "img/effect_icon_reverb_on.png") == 0) + { + extern const unsigned char web_img_effect_icon_reverb_on_png_start[] asm("_binary_effect_icon_reverb_on_png_start"); + extern const unsigned char web_img_effect_icon_reverb_on_png_end[] asm("_binary_effect_icon_reverb_on_png_end"); + return send_embedded_png_file(req, (const char*)web_img_effect_icon_reverb_on_png_start, web_img_effect_icon_reverb_on_png_end - web_img_effect_icon_reverb_on_png_start); + } + else if (strcmp(requested, "img/effect_icon_reverb_on_p.png") == 0) + { + extern const unsigned char web_img_effect_icon_reverb_on_p_png_start[] asm("_binary_effect_icon_reverb_on_p_png_start"); + extern const unsigned char web_img_effect_icon_reverb_on_p_png_end[] asm("_binary_effect_icon_reverb_on_p_png_end"); + return send_embedded_png_file(req, (const char*)web_img_effect_icon_reverb_on_p_png_start, web_img_effect_icon_reverb_on_p_png_end - web_img_effect_icon_reverb_on_p_png_start); + } + else if (strcmp(requested, "img/effect_icon_reverb_on_r.png") == 0) + { + extern const unsigned char web_img_effect_icon_reverb_on_r_png_start[] asm("_binary_effect_icon_reverb_on_r_png_start"); + extern const unsigned char web_img_effect_icon_reverb_on_r_png_end[] asm("_binary_effect_icon_reverb_on_r_png_end"); + return send_embedded_png_file(req, (const char*)web_img_effect_icon_reverb_on_r_png_start, web_img_effect_icon_reverb_on_r_png_end - web_img_effect_icon_reverb_on_r_png_start); + } + else if (strcmp(requested, "img/effect_icon_reverb_on_s1.png") == 0) + { + extern const unsigned char web_img_effect_icon_reverb_on_s1_png_start[] asm("_binary_effect_icon_reverb_on_s1_png_start"); + extern const unsigned char web_img_effect_icon_reverb_on_s1_png_end[] asm("_binary_effect_icon_reverb_on_s1_png_end"); + return send_embedded_png_file(req, (const char*)web_img_effect_icon_reverb_on_s1_png_start, web_img_effect_icon_reverb_on_s1_png_end - web_img_effect_icon_reverb_on_s1_png_start); + } + else if (strcmp(requested, "img/effect_icon_reverb_on_s2.png") == 0) + { + extern const unsigned char web_img_effect_icon_reverb_on_s2_png_start[] asm("_binary_effect_icon_reverb_on_s2_png_start"); + extern const unsigned char web_img_effect_icon_reverb_on_s2_png_end[] asm("_binary_effect_icon_reverb_on_s2_png_end"); + return send_embedded_png_file(req, (const char*)web_img_effect_icon_reverb_on_s2_png_start, web_img_effect_icon_reverb_on_s2_png_end - web_img_effect_icon_reverb_on_s2_png_start); + } + else if (strcmp(requested, "img/effect_icon_reverb_on_s3.png") == 0) + { + extern const unsigned char web_img_effect_icon_reverb_on_s3_png_start[] asm("_binary_effect_icon_reverb_on_s3_png_start"); + extern const unsigned char web_img_effect_icon_reverb_on_s3_png_end[] asm("_binary_effect_icon_reverb_on_s3_png_end"); + return send_embedded_png_file(req, (const char*)web_img_effect_icon_reverb_on_s3_png_start, web_img_effect_icon_reverb_on_s3_png_end - web_img_effect_icon_reverb_on_s3_png_start); + } + else if (strcmp(requested, "img/effect_icon_reverb_on_s4.png") == 0) + { + extern const unsigned char web_img_effect_icon_reverb_on_s4_png_start[] asm("_binary_effect_icon_reverb_on_s4_png_start"); + extern const unsigned char web_img_effect_icon_reverb_on_s4_png_end[] asm("_binary_effect_icon_reverb_on_s4_png_end"); + return send_embedded_png_file(req, (const char*)web_img_effect_icon_reverb_on_s4_png_start, web_img_effect_icon_reverb_on_s4_png_end - web_img_effect_icon_reverb_on_s4_png_start); + } + else if (strcmp(requested, "img/eq_off.png") == 0) + { + extern const unsigned char web_img_eq_off_png_start[] asm("_binary_eq_off_png_start"); + extern const unsigned char web_img_eq_off_png_end[] asm("_binary_eq_off_png_end"); + return send_embedded_png_file(req, (const char*)web_img_eq_off_png_start, web_img_eq_off_png_end - web_img_eq_off_png_start); + } + else if (strcmp(requested, "img/eq_on.png") == 0) + { + extern const unsigned char web_img_eq_on_png_start[] asm("_binary_eq_on_png_start"); + extern const unsigned char web_img_eq_on_png_end[] asm("_binary_eq_on_png_end"); + return send_embedded_png_file(req, (const char*)web_img_eq_on_png_start, web_img_eq_on_png_end - web_img_eq_on_png_start); + } + else if (strcmp(requested, "img/mod_off.png") == 0) + { + extern const unsigned char web_img_mod_off_png_start[] asm("_binary_mod_off_png_start"); + extern const unsigned char web_img_mod_off_png_end[] asm("_binary_mod_off_png_end"); + return send_embedded_png_file(req, (const char*)web_img_mod_off_png_start, web_img_mod_off_png_end - web_img_mod_off_png_start); + } + else if (strcmp(requested, "img/mod_on.png") == 0) + { + extern const unsigned char web_img_mod_on_png_start[] asm("_binary_mod_on_png_start"); + extern const unsigned char web_img_mod_on_png_end[] asm("_binary_mod_on_png_end"); + return send_embedded_png_file(req, (const char*)web_img_mod_on_png_start, web_img_mod_on_png_end - web_img_mod_on_png_start); + } + else if (strcmp(requested, "img/nr_off.png") == 0) + { + extern const unsigned char web_img_nr_off_png_start[] asm("_binary_nr_off_png_start"); + extern const unsigned char web_img_nr_off_png_end[] asm("_binary_nr_off_png_end"); + return send_embedded_png_file(req, (const char*)web_img_nr_off_png_start, web_img_nr_off_png_end - web_img_nr_off_png_start); + } + else if (strcmp(requested, "img/nr_on.png") == 0) + { + extern const unsigned char web_img_nr_on_png_start[] asm("_binary_nr_on_png_start"); + extern const unsigned char web_img_nr_on_png_end[] asm("_binary_nr_on_png_end"); + return send_embedded_png_file(req, (const char*)web_img_nr_on_png_start, web_img_nr_on_png_end - web_img_nr_on_png_start); + } + else if (strcmp(requested, "img/pre_off.png") == 0) + { + extern const unsigned char web_img_pre_off_png_start[] asm("_binary_pre_off_png_start"); + extern const unsigned char web_img_pre_off_png_end[] asm("_binary_pre_off_png_end"); + return send_embedded_png_file(req, (const char*)web_img_pre_off_png_start, web_img_pre_off_png_end - web_img_pre_off_png_start); + } + else if (strcmp(requested, "img/pre_on.png") == 0) + { + extern const unsigned char web_img_pre_on_png_start[] asm("_binary_pre_on_png_start"); + extern const unsigned char web_img_pre_on_png_end[] asm("_binary_pre_on_png_end"); + return send_embedded_png_file(req, (const char*)web_img_pre_on_png_start, web_img_pre_on_png_end - web_img_pre_on_png_start); + } + else if (strcmp(requested, "img/rvb_off.png") == 0) + { + extern const unsigned char web_img_rvb_off_png_start[] asm("_binary_rvb_off_png_start"); + extern const unsigned char web_img_rvb_off_png_end[] asm("_binary_rvb_off_png_end"); + return send_embedded_png_file(req, (const char*)web_img_rvb_off_png_start, web_img_rvb_off_png_end - web_img_rvb_off_png_start); + } + else if (strcmp(requested, "img/rvb_on.png") == 0) + { + extern const unsigned char web_img_rvb_on_png_start[] asm("_binary_rvb_on_png_start"); + extern const unsigned char web_img_rvb_on_png_end[] asm("_binary_rvb_on_png_end"); + return send_embedded_png_file(req, (const char*)web_img_rvb_on_png_start, web_img_rvb_on_png_end - web_img_rvb_on_png_start); + } + else if (strcmp(requested, "img/tc_off.png") == 0) + { + extern const unsigned char web_img_tc_off_png_start[] asm("_binary_tc_off_png_start"); + extern const unsigned char web_img_tc_off_png_end[] asm("_binary_tc_off_png_end"); + return send_embedded_png_file(req, (const char*)web_img_tc_off_png_start, web_img_tc_off_png_end - web_img_tc_off_png_start); + } + else if (strcmp(requested, "img/tc_on.png") == 0) + { + extern const unsigned char web_img_tc_on_png_start[] asm("_binary_tc_on_png_start"); + extern const unsigned char web_img_tc_on_png_end[] asm("_binary_tc_on_png_end"); + return send_embedded_png_file(req, (const char*)web_img_tc_on_png_start, web_img_tc_on_png_end - web_img_tc_on_png_start); + } + else if (strcmp(requested, "favicon.ico") == 0) + { + extern const unsigned char web_favicon_ico_start[] asm("_binary_favicon_ico_start"); + extern const unsigned char web_favicon_ico_end[] asm("_binary_favicon_ico_end"); + httpd_resp_set_type(req, "image/x-icon"); + httpd_resp_set_hdr(req, "Cache-Control", "public, max-age=604800"); + return httpd_resp_send(req, (const char*)web_favicon_ico_start, web_favicon_ico_end - web_favicon_ico_start); + } + + // Not found + httpd_resp_send_404(req); + return ESP_OK; } /**************************************************************************** @@ -1425,19 +1743,20 @@ static esp_err_t http_server_init(void) http_config.keep_alive_count = 5; http_config.open_fn = NULL; http_config.close_fn = NULL; - http_config.uri_match_fn = NULL; + http_config.uri_match_fn = httpd_uri_match_wildcard; //NULL; http_config.lru_purge_enable = true; if (httpd_start(&http_server, &http_config) == ESP_OK) { if (http_server != NULL) { - ESP_LOGI(TAG, "Http register uri 1"); - httpd_register_uri_handler(http_server, &index_get); - // Registering the ws handler ESP_LOGI(TAG, "Registering ws handler"); httpd_register_uri_handler(http_server, &ws); + + ESP_LOGI(TAG, "Http register uri 1"); + //httpd_register_uri_handler(http_server, &index_get); + httpd_register_uri_handler(http_server, &embedded_uri); } } From ca980a3bef413ae695e54ed84cee6f8dfbbd7d31 Mon Sep 17 00:00:00 2001 From: Greg Smith Date: Tue, 18 Nov 2025 21:49:31 +1100 Subject: [PATCH 22/34] Starting on web page changes for GP5 support --- source/main/web/index.html | 2578 ++++++++++++++++++++++-------------- source/main/wifi_config.c | 68 +- 2 files changed, 1664 insertions(+), 982 deletions(-) diff --git a/source/main/web/index.html b/source/main/web/index.html index 61635dfb..843aa13c 100644 --- a/source/main/web/index.html +++ b/source/main/web/index.html @@ -385,14 +385,29 @@ text-align:center; } - .fx_icon_container { - display: flex; - justify-content: space-around; /* or space-evenly */ - width: 98%; - margin: 0 auto; - padding: 5px; + .fx_icon_container { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(65px, 1fr)); + gap: 8px 8px; + justify-items: center; + align-items: center; + width: 100%; + padding: 8px 8px; + box-sizing: border-box; } - + + .fx_icon_container img { + height: 70px; + width: auto; + max-width: 100%; + } + + @media (max-width: 560px) { + .fx_icon_container { + grid-template-columns: repeat(4, 1fr); + } + } + .oscilloscope-container { display: flex; justify-content: center; @@ -419,12 +434,19 @@ - + -
-
-
- - - - - - - - -
-
-
- -
-
- -
-
-
-
- +
+
+
+
+ + + + + + + + +
+
+
+ +
+
+ +

- -
+
+
+ +
+ +
+
-
-
-
-
Noise Gate
-

-

-
-
-
- - +
+
+
Noise Gate
+

+

+
+
+
+ + +
-
-
-
- - +
+
+ + +
+
+
+
+ +
-
-
-
- - -
-
- - -
-
- - -
-

+
+ + +
+
+ + +
+

+
-
-
-
-
Compressor
-

-

-
-
-
- - +
+
+
Compressor
+

+

+
+
+
+ + +
-
-
-
- - +
+
+ + +
+
+
+
+ +
-
-
-
- - -
-
- - -
-
- - -
-

+
+ + +
+
+ + +
+

+
-
-
-
-
Equalisation
-

-

-
-
-
- - +
+
+
Equalisation
+

+

+
+
+
+ + +
-
-
-
+
+
+
+
+
+ +
+ +
-
-
- -
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-

+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+

+
-
- -
-
-
Reverb
-

-

-
-
-
- - + +
+
+
Reverb
+

+

+
+
+
+ + +
-
-
-
- - +
+
+ + +
+
+
+
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ +
-
-
-
- - -
-
-
- - -
-
- - -
-
- - -
-
- - -
-

+

+
-
- -
-
-
Modulation
-

-

-
-
-
- - + +
+
+
Modulation
+

+

+
+
+
+ + +
-
-
-
- - +
+
+ + +
-
-
-
-
-
-
- - +
+
+
+
+
+ + +
-
-
-
+
+
+
+
+
+
+ +
-
-
-
- - -
-
-
- -
-
-
-
-
- -
-
-
+
+ + +
+
+
+
+
+ +
+
+
+
+
- -
-
- - -
-
- - -
-
- - -
-

+
+ + +
+
+ + +
+
+ + +
+

+
-
- -
-
-
Delay
-

-

-
-
-
- - + +
+
+
Delay
+

+

+
+
+
+ + +
+
+
+
+ + +
-
-
- - +
+
+
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ +
-
-
-
-
-
-
- - +
+
+
+
+
-
-
-
- - +
+
+
-
-
-
- - -
-
-
-
-
- -
-
-
-
+
+ + +
- -
-
- - -
-
-
- - -
-
- - -
-

+
+ + +
+
+ + +
+

+
-
- -
-
-
Amplifier
-

-

-
-
-
- - + +
+
+
Amplifier
+

+

+
+
+
+ + +
-
-
-
- - -
-
-
- - -
-
- - -
-
- - -
+
+
+ + +
+
+
+ + +
+
+ + +
+
+ + +
-
- - -
+
+ + +
-
- - -
-

+
+ + +
+

+
-
- -
-
-
Global
-

-

-
-
-
- - + +
+
+
Cabinet
+

+

+ + +
+

+
+
+ +
+
+
Global
+

+

+
+
+
+ + +
-
-
-
- - +
+
+ + +
-
-
-
-
-
-
- - +
+
+
+
+
+ + +
+
+
-
+
+
+
+
+
TAP
-
-
-
-
-
TAP
+
+ +
-
-
- - -
-
- - -
-
- - -
-
- - -
-

+
+ + +
+
+ + +
+
+ + +
+

+
-
- -
-
-
Noise Reduction
-

-

-
-
-
- - + +
+
+
Noise Reduction
+

+

+
+
+
+ + +
+
+
-
-
-
-
-
- - -
-
-
- - -
-

+
+
+ + +
+
+
+ + +
+

+
-
-
-
-
Pre
-

-

-
-
-
- - +
+
+
Pre
+

+

+
+
+
+ + +
+
+
-
-
-
-
-
- - -
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-

+
+
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+

+
-
-
-
-
Amplifier
-

-

-
-
-
- - +
+
+
Amplifier
+

+

+
+
+
+ + +
+
+
-
-
-
-
-
- - -
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-

+
+
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+

+
-
-
-
-
Cabinet
-

-

-
-
-
- - +
+
+
Cabinet
+

+

+
+
+
+ + +
+
+
-
-
-
-
-
- - -
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-

+
+
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+

+
-
-
-
-
Equaliser
-

-

-
-
-
- - +
+
+
Equaliser
+

+

+
+
+
+ + +
+
+
-
-
-
-
-
- - -
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
+
+
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
-

+

+
-
-
-
-
Distortion
-

-

-
-
-
- - +
+
+
Distortion
+

+

+
+
+
+ + +
+
+
-
-
-
-
-
- - -
-
-
- - -
-
- - -
+
- - -
+ + +
+
- - -
+ + +
- - -
-

-
-
- -
-
-
Modulation
-

-

-
-
-
- - -
-
-
-
+ +
-
-
-
- - -
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-

-
-
- -
-
-
Delay
-

-

-
-
-
- - -
-
-
-
+
+ +
-
-
-
- - -
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-

-
-
- -
-
-
Reverb
-

-

-
-
-
- - -
-
-
-
+
+ +
-
-
-
- - -
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-

+
+ + +
+

+
-
-
-
-
Snaptone
-

-

-
-
-
- - +
+
+
Modulation
+

+

+
+
+
+ + +
+
+
-
-
-
-
-
- - -
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-

-
-
- -
-
-
Patch
-

-

- - -
-

+
+
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+

+
-
-
-
-
Global
-

-

-
-
-
- - +
+
+
Delay
+

+

+
+
+
+ + +
+
+
-
-
-
-
-
-
-
TAP
+
+
+ +
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-

-
-
- -
-
-
Presets
-

-

-
-
-
- -
-
+
+
+ +
-
-
-
-
- -
-

+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+

+
-
-
-
-
Bluetooth
-

-

- - -
-
-
-
- - -
-
-
-
-
- - -
-
-
-
-
-
- - -
-
-
-
- -
-
-
-
-
- - -
-
-
-
-
- -
-

-
-
- -
-
-
Midi
-

-

-
- - -
-
-
-
- - -
-
-
-
- -
-

-
-
- -
-
-
Internal Footswitches
-

-

- - -
-
-
-
- - - - -
-
-
-
- - -
-
+
+
+
Reverb
+

- - +
+
+
+ + +
+
+
+
+

- - - - + +

- - - - + +
-
-
-
- - -
-
- - + +
-
- - - - + +
-
- - - - + +
-
-
-
- - -
-
- - + + +
+

+
+
+ +
+
+
Snaptone
+

+

+
+
+
+ + +
+
+
+
+

- - - - + +

- - - - + +
-
-
-
- - -
-
- - + +
-
- - - - + +
-
- - - - + +
-
-
-
-
- -
-

+
+ + +
+

+
-
-
-
-
External Footswitches
-

-

- - -
-
-
-
- - - - - - - - -
-
-
-
- - +
+
+
Patch
+

+

+ +
-
+

+
+
+ +
+
+
Global
+

- - +
+
+
+ + +
+
+
+
+

- - - - +
+
TAP
+
-
- - - - + +
-
-
-
- - +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+

+
+
+ +
+
+
Presets
+

+

+
+
+
+ +
+
+

+
- - + +
+

+
+
+ +
+
+
Bluetooth
+

+

+ +

- - - - +
+ + +

- - - - +
+ + +
-
-
-
- - +
+
+
+
+ + +

- - +

+
- - - - +
+ + +

+
- - - - +
-
-
-
- - +

+
+
+ +
+
+
Midi
+

+

+
+ + +

- - + +

+
- - - - + +
+

+
+
+ +
+
+
Directly Connected Footswitches
+

+

+ + +
+
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +

+
- - - - +
-
-
-
- - + + + + + + + + + + + + + + + + +
+
+
+
+ + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + + + +
+
+
+ + + + +
+
+

- - +
-
+

+
+
+ +
+
+
WiFi
+

- - - - + +

- - - - -
-
-
-
- - + + + + -
-
+
- - +
+

- - - - + +

- - - - + +
-
-
-
- - -
-
+
- - + + +
+
+
+
+ +
+

+
+
+ +
+
+
Miscellaneous
+

+

+
+ + +

- - - - + +

- - - - +
+ + +
-
-
-
- - -
-
+
- - + +

- - - - +
+ + +

+
- - - - +
-
-
-
-
- -
-

+

+
- -
-
-
WiFi
-

-

- - -
-
-
- - -
-
-
-
-
-
-
- - -
-
-
- - -
-
-
- - -
-
-
-
- -
-

-
-
-
-
-
Miscellaneous
-

-

-
- - -
-
-
-
- - -
-
-
-
- - -
-
-
-
- - -
-
-
-
- - -
-
-
-
-
- -
-

-
-
-

-
- - -
-
@@ -2044,7 +2035,7 @@
WiFi
-

+

diff --git a/source/main/web/script.js b/source/main/web/script.js index 1087e7c2..9dd3232d 100644 --- a/source/main/web/script.js +++ b/source/main/web/script.js @@ -839,7 +839,7 @@ const DEVICE_MENUS = {
  • Direct FS
  • External FS
  • WiFi
  • -
  • Miscellaneous
  • +
  • Misc
  • `, diff --git a/ui_design_320x170land/Tonex_Controller_320_170.eez-project b/ui_design_320x170land/Tonex_Controller_320_170.eez-project index 32c9d1ca..6bab8a6b 100644 --- a/ui_design_320x170land/Tonex_Controller_320_170.eez-project +++ b/ui_design_320x170land/Tonex_Controller_320_170.eez-project @@ -430,7 +430,7 @@ "setPivot": false, "pivotX": 0, "pivotY": 0, - "zoom": 192, + "zoom": 160, "angle": 0, "innerAlign": "CENTER" }, @@ -526,7 +526,7 @@ "setPivot": false, "pivotX": 0, "pivotY": 0, - "zoom": 192, + "zoom": 180, "angle": 0, "innerAlign": "CENTER" } diff --git a/ui_design_320x170land/Tonex_Controller_320_170.eez-project-ui-state b/ui_design_320x170land/Tonex_Controller_320_170.eez-project-ui-state index fe4fa3b0..04f5f740 100644 --- a/ui_design_320x170land/Tonex_Controller_320_170.eez-project-ui-state +++ b/ui_design_320x170land/Tonex_Controller_320_170.eez-project-ui-state @@ -166,7 +166,8 @@ "enableClose": false, "icon": "svg:hierarchy" } - ] + ], + "active": true }, { "type": "tabset", @@ -204,8 +205,7 @@ }, "icon": "svg:page" } - ], - "active": true + ] }, { "type": "row", @@ -975,9 +975,12 @@ "selection": { "0": { "0": { - "1": { - "$selected": true + "0": { + "4": { + "$selected": true + } }, + "1": {}, "5": {}, "7": {}, "8": { diff --git a/ui_design_480x320land/Tonex_Controller_480_320.eez-project b/ui_design_480x320land/Tonex_Controller_480_320.eez-project index ca7125db..27476ae5 100644 --- a/ui_design_480x320land/Tonex_Controller_480_320.eez-project +++ b/ui_design_480x320land/Tonex_Controller_480_320.eez-project @@ -24907,7 +24907,7 @@ }, "group": "", "groupIndex": 0, - "tabName": "Glob", + "tabName": "Glb", "tabNameType": "literal" } ], diff --git a/ui_design_480x320land/Tonex_Controller_480_320.eez-project-ui-state b/ui_design_480x320land/Tonex_Controller_480_320.eez-project-ui-state index 4f29b89f..50725dfb 100644 --- a/ui_design_480x320land/Tonex_Controller_480_320.eez-project-ui-state +++ b/ui_design_480x320land/Tonex_Controller_480_320.eez-project-ui-state @@ -1,6 +1,7 @@ { "navigation": { "selectedUserPageObject": "[Tonex_Controller_480_320.eez-project]:/userPages/2", + "selectedBitmapObject": "[Tonex_Controller_480_320.eez-project]:/bitmaps/113", "subnavigationSelectedItems": {} }, "layoutModel": { @@ -203,8 +204,7 @@ }, "icon": "svg:page" } - ], - "active": true + ] }, { "type": "row", @@ -224,7 +224,8 @@ "enableClose": false, "icon": "svg:properties" } - ] + ], + "active": true }, { "type": "tabset", @@ -1028,7 +1029,8 @@ "selection": { "0": { "0": { - "0": { + "0": {}, + "11": { "$selected": true } }, diff --git a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project index f4a5572d..977c2622 100644 --- a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project +++ b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project @@ -25017,7 +25017,7 @@ "objID": "d2793565-3886-41e7-f9ca-9582d42a2fea", "type": "LVGLImageWidget", "left": 354, - "top": 410, + "top": 406, "width": 87, "height": 70, "customInputs": [], diff --git a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state index fa1d33a1..fffe2559 100644 --- a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state +++ b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state @@ -1,6 +1,7 @@ { "navigation": { "selectedUserPageObject": "[Tonex_Controller_800_480land.eez-project]:/userPages/2", + "selectedBitmapObject": "[Tonex_Controller_800_480land.eez-project]:/bitmaps/113", "subnavigationSelectedItems": {} }, "layoutModel": { @@ -1020,11 +1021,7 @@ "selection": { "0": { "0": { - "11": { - "3": { - "$selected": true - } - } + "$selected": true } } }, From 4fd8ce681291d95b2d87d06ed8a3b379ce6ebfa7 Mon Sep 17 00:00:00 2001 From: Greg Smith Date: Sat, 29 Nov 2025 19:12:41 +1100 Subject: [PATCH 33/34] Last few bugs before beta testing: - implemented tap temp display for GP5 - fixed web syntax error that got rid of the Misc page --- source/main/display_valeton.c | 13 ++++++++++++- source/main/web/index.html | 4 ++-- source/main/web/script.js | 4 ++-- ...ex_Controller_800_480land.eez-project-ui-state | 15 +++++++++------ 4 files changed, 25 insertions(+), 11 deletions(-) diff --git a/source/main/display_valeton.c b/source/main/display_valeton.c index 01ffde4c..f5dd8308 100644 --- a/source/main/display_valeton.c +++ b/source/main/display_valeton.c @@ -3011,7 +3011,18 @@ uint8_t valeton_update_ui_parameters(void) case VALETON_GLOBAL_BPM: { - //todo + // show value and units + // todo + // sprintf(value_string, "%1.1f", param_entry->Value); + //lv_label_set_text(objects.ui_val_bpm_value, value_string); + + char buf[128]; + sprintf(buf, "%.1f", param_entry->Value); + lv_label_set_text(objects.ui_bpm_value_label, buf); + +#if CONFIG_TONEX_CONTROLLER_SHOW_BPM_INDICATOR + ui_BPMAnimate(objects.ui_bpm_indicator, 1000 * 60 / param_entry->Value); +#endif } break; case VALETON_GLOBAL_INPUT_TRIM: diff --git a/source/main/web/index.html b/source/main/web/index.html index 03dacf7d..773449bb 100644 --- a/source/main/web/index.html +++ b/source/main/web/index.html @@ -2035,11 +2035,11 @@
    WiFi
    -

    -
    +
    Miscellaneous

    diff --git a/source/main/web/script.js b/source/main/web/script.js index 9dd3232d..384a4125 100644 --- a/source/main/web/script.js +++ b/source/main/web/script.js @@ -839,7 +839,7 @@ const DEVICE_MENUS = {

  • Direct FS
  • External FS
  • WiFi
  • -
  • Misc
  • +
  • Misc
  • `, @@ -878,7 +878,7 @@ const DEVICE_MENUS = {
  • Direct FS
  • External FS
  • WiFi
  • -
  • Miscellaneous
  • +
  • Misc
  • ` diff --git a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state index fffe2559..e0e3ad91 100644 --- a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state +++ b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state @@ -1,6 +1,6 @@ { "navigation": { - "selectedUserPageObject": "[Tonex_Controller_800_480land.eez-project]:/userPages/2", + "selectedUserPageObject": "[Tonex_Controller_800_480land.eez-project]:/userPages/0", "selectedBitmapObject": "[Tonex_Controller_800_480land.eez-project]:/bitmaps/113", "subnavigationSelectedItems": {} }, @@ -197,10 +197,10 @@ { "type": "tab", "id": "#76314634-65e1-4225-b990-af9c26f38d4f", - "name": "ValSettings", + "name": "Screen1", "component": "editor", "config": { - "objectPath": "[Tonex_Controller_800_480land.eez-project]:/userPages/2", + "objectPath": "[Tonex_Controller_800_480land.eez-project]:/userPages/0", "permanent": false }, "icon": "svg:page" @@ -975,9 +975,12 @@ "selection": { "0": { "0": { - "11": { - "$selected": true - } + "5": { + "1": { + "$selected": true + } + }, + "11": {} } } }, From 5f1ba35ee270effb659df532f380c6676045c882 Mon Sep 17 00:00:00 2001 From: Greg Smith Date: Sun, 30 Nov 2025 13:25:57 +1100 Subject: [PATCH 34/34] - fixed issue where Tonex One global volume changes didn't update the UI straight away - removed EEZ studio state files from Git --- .gitignore | 9 +- source/main/usb_tonex_one.c | 6 + ...ex_Controller_128_128.eez-project-ui-state | 1020 ---------------- ...ex_Controller_240_280.eez-project-ui-state | 1018 ---------------- ...ex_Controller_280_240.eez-project-ui-state | 1018 ---------------- ...ex_Controller_320_170.eez-project-ui-state | 1043 ---------------- ...ex_Controller_480_320.eez-project-ui-state | 1076 ----------------- ...ontroller_800_480land.eez-project-ui-state | 1068 ---------------- 8 files changed, 8 insertions(+), 6250 deletions(-) delete mode 100644 ui_design_128x128/Tonex_Controller_128_128.eez-project-ui-state delete mode 100644 ui_design_240x280port/Tonex_Controller_240_280.eez-project-ui-state delete mode 100644 ui_design_280x240land/Tonex_Controller_280_240.eez-project-ui-state delete mode 100644 ui_design_320x170land/Tonex_Controller_320_170.eez-project-ui-state delete mode 100644 ui_design_480x320land/Tonex_Controller_480_320.eez-project-ui-state delete mode 100644 ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state diff --git a/.gitignore b/.gitignore index 36b741db..48b49f4e 100644 --- a/.gitignore +++ b/.gitignore @@ -3,10 +3,5 @@ build_distrib/temp -# ignore EEZ Studio files -ui_design_128x128/*.eez-project-ui-state -ui_design_240x280port/*.eez-project-ui-state -ui_design_280x240land/*.eez-project-ui-state -ui_design_320x170land/*.eez-project-ui-state -ui_design_480x320land/*.eez-project-ui-state -ui_design_800x480land/*.eez-project-ui-state +# ignore EEZ Studio state files +**/*.eez-project-ui-state diff --git a/source/main/usb_tonex_one.c b/source/main/usb_tonex_one.c index 214215dd..696240bb 100644 --- a/source/main/usb_tonex_one.c +++ b/source/main/usb_tonex_one.c @@ -657,6 +657,12 @@ static esp_err_t usb_tonex_one_modify_global(uint16_t global_val, float value) usb_tonex_one_send_master_volume(scaled_value); + // wait a little + vTaskDelay(20); + + // read value back to update the UI + usb_tonex_one_request_master_volume(); + // bit of a hack here. Return fail code, so caller can avoid sending the state data unneccessarily res = ESP_FAIL; } break; diff --git a/ui_design_128x128/Tonex_Controller_128_128.eez-project-ui-state b/ui_design_128x128/Tonex_Controller_128_128.eez-project-ui-state deleted file mode 100644 index e9abfd2d..00000000 --- a/ui_design_128x128/Tonex_Controller_128_128.eez-project-ui-state +++ /dev/null @@ -1,1020 +0,0 @@ -{ - "navigation": { - "selectedUserPageObject": "[Tonex_Controller_128_128.eez-project]:/userPages/0", - "subnavigationSelectedItems": {} - }, - "layoutModel": { - "rootEditor": { - "version": 115, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [ - { - "type": "border", - "location": "top", - "children": [] - }, - { - "type": "border", - "size": 240, - "location": "right", - "children": [ - { - "type": "tab", - "id": "styles", - "name": "Styles", - "component": "styles", - "enableClose": false, - "icon": "material:format_color_fill" - }, - { - "type": "tab", - "id": "fonts", - "name": "Fonts", - "component": "fonts", - "enableClose": false, - "icon": "material:font_download" - }, - { - "type": "tab", - "id": "bitmaps", - "name": "Bitmaps", - "component": "bitmaps", - "enableClose": false, - "icon": "material:image" - }, - { - "type": "tab", - "id": "themes", - "name": "Themes", - "component": "themesSideView", - "enableClose": false, - "icon": "svg:palette" - }, - { - "type": "tab", - "id": "lvgl-groups", - "name": "Groups", - "component": "lvgl-groups", - "enableClose": false, - "icon": "material:view_compact" - } - ] - }, - { - "type": "border", - "selected": 0, - "location": "bottom", - "children": [ - { - "type": "tab", - "id": "CHECKS", - "name": "Checks", - "component": "checksMessages", - "enableClose": false - }, - { - "type": "tab", - "id": "OUTPUT", - "name": "Output", - "component": "outputMessages", - "enableClose": false - }, - { - "type": "tab", - "id": "SEARCH", - "name": "Search", - "component": "search", - "enableClose": false - }, - { - "type": "tab", - "id": "REFERENCES", - "name": "References", - "component": "references", - "enableClose": false - } - ] - }, - { - "type": "border", - "size": 240, - "location": "left", - "children": [] - } - ], - "layout": { - "type": "row", - "id": "#4d1c52fb-0188-454b-83e1-8302d21edb02", - "children": [ - { - "type": "row", - "id": "#06febe1d-8615-4d46-aab5-6fe924dc7144", - "weight": 15, - "children": [ - { - "type": "tabset", - "id": "#207c178f-8504-477c-ac66-376cadf12cc7", - "weight": 1, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "PAGES", - "name": "Pages", - "component": "pages", - "enableClose": false, - "icon": "svg:pages" - }, - { - "type": "tab", - "id": "WIDGETS", - "name": "User Widgets", - "component": "widgets", - "enableClose": false, - "icon": "svg:user_widgets" - }, - { - "type": "tab", - "id": "ACTIONS", - "name": "User Actions", - "component": "actions", - "enableClose": false, - "icon": "material:code" - } - ] - }, - { - "type": "tabset", - "id": "#7c5fbb89-4e93-495e-9dbf-55ec6e11ef38", - "weight": 1, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "#696bf22f-4fc6-427d-bbbc-db2247d37161", - "name": "Widgets Structure", - "component": "flow-structure", - "enableClose": false, - "icon": "svg:hierarchy" - } - ] - }, - { - "type": "tabset", - "id": "#f6f2af22-f29b-451d-bdab-98ef047f6f0d", - "weight": 1, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "VARIABLES", - "name": "Variables", - "component": "variables", - "enableClose": false, - "icon": "svg:variable" - } - ] - } - ] - }, - { - "type": "tabset", - "id": "EDITORS", - "weight": 65, - "enableDeleteWhenEmpty": false, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "#db32a2e5-df4f-4d81-aa9c-6ebe58a94583", - "name": "Screen1", - "component": "editor", - "config": { - "objectPath": "[Tonex_Controller_128_128.eez-project]:/userPages/0", - "permanent": false - }, - "icon": "svg:page" - } - ] - }, - { - "type": "row", - "id": "#6c030839-80a6-4093-b119-028db2e516b2", - "weight": 20, - "children": [ - { - "type": "tabset", - "id": "#54bab5a2-89f5-4fb9-9a38-06c47d5d9854", - "weight": 2, - "children": [ - { - "type": "tab", - "id": "PROPERTIES", - "name": "Properties", - "component": "propertiesPanel", - "enableClose": false, - "icon": "svg:properties" - } - ], - "active": true - }, - { - "type": "tabset", - "id": "#d976e2fb-73c9-4bdf-9af4-d4de5abcfb36", - "weight": 1, - "children": [ - { - "type": "tab", - "id": "COMPONENTS_PALETTE", - "name": "Components Palette", - "component": "componentsPalette", - "enableClose": false, - "icon": "svg:components" - } - ] - } - ] - } - ] - } - } - }, - "rootEditorForIEXT": { - "version": 5, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [ - { - "type": "border", - "location": "top", - "children": [] - }, - { - "type": "border", - "size": 240, - "location": "right", - "children": [] - }, - { - "type": "border", - "location": "bottom", - "children": [ - { - "type": "tab", - "id": "CHECKS", - "name": "Checks", - "component": "checksMessages", - "enableClose": false - }, - { - "type": "tab", - "id": "OUTPUT", - "name": "Output", - "component": "outputMessages", - "enableClose": false - }, - { - "type": "tab", - "id": "SEARCH", - "name": "Search", - "component": "search", - "enableClose": false - }, - { - "type": "tab", - "id": "REFERENCES", - "name": "References", - "component": "references", - "enableClose": false - } - ] - }, - { - "type": "border", - "size": 240, - "location": "left", - "children": [] - } - ], - "layout": { - "type": "row", - "id": "#a87abf5a-1da6-40ed-aeaa-401f6b27e738", - "children": [ - { - "type": "tabset", - "id": "#2307031f-71c9-4751-84f2-eaade1504106", - "weight": 0, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "iext", - "name": "IEXT", - "component": "extension-definitions", - "enableClose": false, - "icon": "material:extension" - } - ] - }, - { - "type": "tabset", - "id": "EDITORS", - "weight": 1, - "selected": -1, - "enableDeleteWhenEmpty": false, - "enableClose": false, - "children": [] - }, - { - "type": "tabset", - "id": "#2a49fd66-8f68-4d5d-b296-44ed01318087", - "weight": 0, - "children": [ - { - "type": "tab", - "id": "PROPERTIES", - "name": "Properties", - "component": "propertiesPanel", - "enableClose": false, - "icon": "svg:properties" - } - ] - } - ] - } - } - }, - "rootRuntime": { - "version": 54, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#f76aef02-6a9c-432e-9eac-5b8db5bb23b4", - "children": [ - { - "type": "row", - "id": "#1a88bce2-c9fc-4270-8491-26cc1e3b0f62", - "weight": 0, - "width": 320, - "children": [ - { - "type": "tabset", - "id": "#3dcc4d5f-f3c4-486c-b77a-77f4b53124e8", - "weight": 1, - "children": [ - { - "type": "tab", - "id": "PAGES", - "name": "Pages", - "component": "pages", - "enableClose": false, - "icon": "svg:pages" - }, - { - "type": "tab", - "id": "WIDGETS", - "name": "User Widgets", - "component": "widgets", - "enableClose": false, - "icon": "svg:user_widgets" - }, - { - "type": "tab", - "id": "ACTIONS", - "name": "User Actions", - "component": "actions", - "enableClose": false, - "icon": "material:code" - } - ] - }, - { - "type": "tabset", - "id": "#2d1fad27-b3c2-44ed-b58a-b6b8f82f7d19", - "weight": 1, - "children": [ - { - "type": "tab", - "id": "#2656f24e-881d-4cce-8dc8-5d03a3f07e46", - "name": "Active Flows", - "component": "active-flows", - "enableClose": false, - "icon": "svg:active_flows_panel" - } - ] - }, - { - "type": "tabset", - "id": "#d914fff2-fca2-43a5-ba8d-ff1142079f97", - "weight": 2, - "children": [ - { - "type": "tab", - "id": "#a757ebb6-d370-4082-9569-567a85332317", - "name": "Watch", - "component": "watch", - "enableClose": false, - "icon": "svg:watch_panel" - } - ] - } - ] - }, - { - "type": "tabset", - "id": "RUNTIME-EDITORS", - "weight": 1, - "selected": -1, - "enableDeleteWhenEmpty": false, - "enableClose": false, - "children": [] - }, - { - "type": "row", - "id": "#be95e804-4389-41dd-828f-70c242206c20", - "weight": 0, - "width": 320, - "children": [ - { - "type": "tabset", - "id": "#99b1ad26-f41a-46f6-945e-a4ca9d18e127", - "weight": 1, - "children": [ - { - "type": "tab", - "id": "#2a29d61b-27de-4070-9068-b391139b408e", - "name": "Queue", - "component": "queue", - "enableClose": false, - "icon": "svg:queue_panel" - }, - { - "type": "tab", - "id": "BREAKPOINTS_PALETTE", - "name": "Breakpoints", - "component": "breakpointsPanel", - "enableClose": false, - "icon": "svg:breakpoints_panel" - } - ] - }, - { - "type": "tabset", - "id": "#9ae94394-ad6c-4ef8-aab4-776ab9c0eabe", - "weight": 2, - "children": [ - { - "type": "tab", - "id": "DEBUGGER_LOGS", - "name": "Logs", - "component": "logs", - "enableClose": false, - "icon": "svg:log" - } - ] - } - ] - } - ] - } - } - }, - "bitmaps": { - "version": 2, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#aecf2181-604a-44f3-afe7-1eb4be121bdf", - "children": [ - { - "type": "row", - "id": "#518b785a-f3d8-47d1-84d4-e3089ee7ebb9", - "children": [ - { - "type": "tabset", - "id": "#be8bc9dc-36e3-45c1-8c83-1401d257e1ac", - "weight": 75, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#56d218cf-a9f4-4c1f-a741-cc7212c03f2d", - "name": "Bitmaps", - "component": "bitmaps", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#f66852e2-d2f1-4ee1-ba16-384b286faec4", - "weight": 25, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#2fb6c210-3416-4990-9b64-1e91915f232a", - "name": "Preview", - "component": "preview", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "fonts": { - "version": 1, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#aa774576-8a65-4ab3-b098-bdc3f6fc4021", - "children": [ - { - "type": "tabset", - "id": "#4a3a39f5-4cd5-4035-884d-cef8385e75cf", - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#3fcac99d-c1b4-495e-b7bd-bd4ac95cc44a", - "component": "glyphs", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#70f54084-fb23-4179-b3d8-6081a60f2adb", - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#ff00f329-483f-4219-8e19-d5ce75d34181", - "component": "editor", - "enableClose": false - } - ] - } - ] - } - } - }, - "scpi": { - "version": 3, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#dfa0772e-aee8-47ac-816d-9c1f37199984", - "children": [ - { - "type": "row", - "id": "#2338bcca-0c89-48e8-ac80-30d1ed0967b2", - "children": [ - { - "type": "tabset", - "id": "#3790e5a6-dc15-4f8a-bfff-cdb766e5abba", - "children": [ - { - "type": "tab", - "id": "SCPI_SUBSYSTEMS", - "name": "Subsystems", - "component": "subsystems", - "enableClose": false - }, - { - "type": "tab", - "id": "SCPI_ENUMS", - "name": "Enums", - "component": "enums", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#7f35ccd3-c921-45a3-adb1-d80dfa9216f2", - "children": [ - { - "type": "tab", - "id": "SCPI_COMMANDS", - "name": "Commands", - "component": "commands", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "styles": { - "version": 2, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#dc7f2290-ea51-4965-999e-430612271b50", - "children": [ - { - "type": "row", - "id": "#01fbb66d-a7c3-4087-ba02-0f4d5af86f6a", - "children": [ - { - "type": "tabset", - "id": "#b3e9cc0d-bc25-4bb5-aaad-1a64f3aa3bd8", - "weight": 75, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#1db967f1-76b9-466a-8019-6c0566d64cba", - "name": "Styles", - "component": "styles", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#def497d8-444c-42f4-a6ac-934520bb6cf4", - "weight": 25, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#80055e30-bf04-4462-922a-27096040b0a5", - "name": "Preview", - "component": "preview", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "lvglStyles": { - "version": 1, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#90440239-b3c3-4151-b11c-ea3c4494c716", - "children": [ - { - "type": "row", - "id": "#58b080c4-ffbf-4c0f-a54a-e38428c88520", - "children": [ - { - "type": "tabset", - "id": "#1fee3445-0335-4a90-ac25-82494857de2d", - "weight": 75, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#e038a5c5-7c83-4512-bd7e-2bac848f6f14", - "name": "Styles", - "component": "styles", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#cf62d8ff-c665-459d-aea8-9ac53105e75c", - "weight": 25, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#294f9673-a775-46c7-9807-364d6ef66a5f", - "name": "Preview", - "component": "preview", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "themes": { - "version": 1, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#ff06049c-9327-45c9-a6b9-7b03745c73e7", - "children": [ - { - "type": "row", - "id": "#ebfb64e3-f5f2-4477-afcd-18e8a92a2d73", - "children": [ - { - "type": "tabset", - "id": "#1a96d64e-3517-415e-b260-227846df9f01", - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#281c57f4-3539-4255-a725-1bdfddf9f57e", - "component": "themes", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#e7bb1dda-3f64-4dcb-94a7-1165e0437ff2", - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#710b5e33-94f5-4c3e-b929-1ae1300ce386", - "component": "colors", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "texts": { - "version": 7, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#68c4a3c0-3f53-4e79-8538-eb34e461a741", - "children": [ - { - "type": "row", - "id": "#f0de3cde-9323-43d7-9709-e71418d8e78b", - "children": [ - { - "type": "tabset", - "id": "#a6c1bfb9-2342-4dde-a169-d4e91f6ed78b", - "children": [ - { - "type": "tab", - "id": "TEXT_RESOURCES", - "name": "Text resources", - "component": "resources", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#3b87f0bb-b0cb-468b-9fb2-1a0aead611ea", - "children": [ - { - "type": "tab", - "id": "LANGUAGES", - "name": "Languages", - "component": "languages", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#bd5fa1ba-fb07-4943-bb69-edbfcace92ff", - "children": [ - { - "type": "tab", - "id": "TEXTS_STATISTICS", - "name": "Statistics", - "component": "statistics", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "lvglGroups": { - "version": 3, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#0ccc92a3-9a0a-47c5-87cf-0614475d1c12", - "children": [ - { - "type": "row", - "id": "#bf6980b7-8b91-4410-8f51-e3ee6cd84fb8", - "children": [ - { - "type": "tabset", - "id": "#ece18ddb-93cc-48db-91bc-bbbcc1dd8532", - "weight": 50, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": true, - "children": [ - { - "type": "tab", - "id": "#d4b03ea4-e45e-4959-af2f-712bd6b6093f", - "name": "Groups", - "component": "groups", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#8b341565-6606-4932-85e0-b0473c4af61d", - "weight": 50, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": true, - "children": [ - { - "type": "tab", - "id": "#0379b319-1f79-4ed9-b962-093e2f540412", - "name": "Group Widgets", - "component": "order", - "enableClose": false - } - ] - } - ] - } - ] - } - } - } - }, - "selectedBuildConfiguration": "Default", - "features": {}, - "objects": { - "[Tonex_Controller_128_128.eez-project]:/userPages/0[flow-state]": { - "selection": { - "0": { - "0": { - "5": {}, - "8": { - "0": { - "$selected": true - } - } - } - } - }, - "transform": { - "translate": { - "x": -162.97142857142853, - "y": -330.21428571428567 - }, - "scale": 3 - }, - "timeline": { - "isEditorActive": false, - "position": 0, - "secondToPx": 200, - "scrollLeft": 0 - } - } - }, - "activeOutputSection": 0, - "searchPattern": "", - "searchMatchCase": false, - "searchMatchWholeWord": false, - "replaceEnabled": false, - "replaceText": "", - "breakpoints": {}, - "watchExpressions": [], - "showComponentDescriptions": true, - "logsPanelFilter": "all", - "selectedStylePropertyName": "", - "lvglPart": "MAIN", - "lvglState": "DEFAULT", - "lvglExpandedPropertiesGroup": [ - "BORDER", - "TEXT", - "MISCELLANEOUS" - ], - "showInactiveFlowsInDebugger": true, - "globalFlowZoom": true, - "flowZoom": 3, - "implementationLanguage": "C" -} \ No newline at end of file diff --git a/ui_design_240x280port/Tonex_Controller_240_280.eez-project-ui-state b/ui_design_240x280port/Tonex_Controller_240_280.eez-project-ui-state deleted file mode 100644 index ee6686ab..00000000 --- a/ui_design_240x280port/Tonex_Controller_240_280.eez-project-ui-state +++ /dev/null @@ -1,1018 +0,0 @@ -{ - "navigation": { - "selectedUserPageObject": "[Tonex_Controller_240_280.eez-project]:/userPages/0", - "subnavigationSelectedItems": {} - }, - "layoutModel": { - "rootEditor": { - "version": 115, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [ - { - "type": "border", - "location": "top", - "children": [] - }, - { - "type": "border", - "size": 240, - "location": "right", - "children": [ - { - "type": "tab", - "id": "styles", - "name": "Styles", - "component": "styles", - "enableClose": false, - "icon": "material:format_color_fill" - }, - { - "type": "tab", - "id": "fonts", - "name": "Fonts", - "component": "fonts", - "enableClose": false, - "icon": "material:font_download" - }, - { - "type": "tab", - "id": "bitmaps", - "name": "Bitmaps", - "component": "bitmaps", - "enableClose": false, - "icon": "material:image" - }, - { - "type": "tab", - "id": "themes", - "name": "Themes", - "component": "themesSideView", - "enableClose": false, - "icon": "svg:palette" - }, - { - "type": "tab", - "id": "lvgl-groups", - "name": "Groups", - "component": "lvgl-groups", - "enableClose": false, - "icon": "material:view_compact" - } - ] - }, - { - "type": "border", - "selected": 0, - "location": "bottom", - "children": [ - { - "type": "tab", - "id": "CHECKS", - "name": "Checks", - "component": "checksMessages", - "enableClose": false - }, - { - "type": "tab", - "id": "OUTPUT", - "name": "Output", - "component": "outputMessages", - "enableClose": false - }, - { - "type": "tab", - "id": "SEARCH", - "name": "Search", - "component": "search", - "enableClose": false - }, - { - "type": "tab", - "id": "REFERENCES", - "name": "References", - "component": "references", - "enableClose": false - } - ] - }, - { - "type": "border", - "size": 240, - "location": "left", - "children": [] - } - ], - "layout": { - "type": "row", - "id": "#f544cc13-1994-4d4c-a605-179fc1f6ac0e", - "children": [ - { - "type": "row", - "id": "#b951bb86-45d9-4bc8-8e0c-64fcf9623804", - "weight": 15, - "children": [ - { - "type": "tabset", - "id": "#1001a406-ccf9-4e5a-bbe3-7e71a0055e78", - "weight": 1, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "PAGES", - "name": "Pages", - "component": "pages", - "enableClose": false, - "icon": "svg:pages" - }, - { - "type": "tab", - "id": "WIDGETS", - "name": "User Widgets", - "component": "widgets", - "enableClose": false, - "icon": "svg:user_widgets" - }, - { - "type": "tab", - "id": "ACTIONS", - "name": "User Actions", - "component": "actions", - "enableClose": false, - "icon": "material:code" - } - ] - }, - { - "type": "tabset", - "id": "#0c7c1b07-411b-401c-a0e9-3c737189ff35", - "weight": 1, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "#93a75a5d-3147-4a8e-ab02-c203a4c41f38", - "name": "Widgets Structure", - "component": "flow-structure", - "enableClose": false, - "icon": "svg:hierarchy" - } - ] - }, - { - "type": "tabset", - "id": "#ed81d7b6-5fc3-4295-b03e-70a020fa3ac3", - "weight": 1, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "VARIABLES", - "name": "Variables", - "component": "variables", - "enableClose": false, - "icon": "svg:variable" - } - ] - } - ] - }, - { - "type": "tabset", - "id": "EDITORS", - "weight": 65, - "enableDeleteWhenEmpty": false, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "#298a5ff1-0af6-407c-87b8-1c2f362236f0", - "name": "Screen1", - "component": "editor", - "config": { - "objectPath": "[Tonex_Controller_240_280.eez-project]:/userPages/0", - "permanent": false - }, - "icon": "svg:page" - } - ] - }, - { - "type": "row", - "id": "#c294898f-5a03-4af3-b075-785e242abbce", - "weight": 20, - "children": [ - { - "type": "tabset", - "id": "#dd480e92-4c2a-4c11-9e8c-d389bc7f9c67", - "weight": 2, - "children": [ - { - "type": "tab", - "id": "PROPERTIES", - "name": "Properties", - "component": "propertiesPanel", - "enableClose": false, - "icon": "svg:properties" - } - ], - "active": true - }, - { - "type": "tabset", - "id": "#67f55fe2-b999-4830-86b9-4b1a1b61fb16", - "weight": 1, - "children": [ - { - "type": "tab", - "id": "COMPONENTS_PALETTE", - "name": "Components Palette", - "component": "componentsPalette", - "enableClose": false, - "icon": "svg:components" - } - ] - } - ] - } - ] - } - } - }, - "rootEditorForIEXT": { - "version": 5, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [ - { - "type": "border", - "location": "top", - "children": [] - }, - { - "type": "border", - "size": 240, - "location": "right", - "children": [] - }, - { - "type": "border", - "location": "bottom", - "children": [ - { - "type": "tab", - "id": "CHECKS", - "name": "Checks", - "component": "checksMessages", - "enableClose": false - }, - { - "type": "tab", - "id": "OUTPUT", - "name": "Output", - "component": "outputMessages", - "enableClose": false - }, - { - "type": "tab", - "id": "SEARCH", - "name": "Search", - "component": "search", - "enableClose": false - }, - { - "type": "tab", - "id": "REFERENCES", - "name": "References", - "component": "references", - "enableClose": false - } - ] - }, - { - "type": "border", - "size": 240, - "location": "left", - "children": [] - } - ], - "layout": { - "type": "row", - "id": "#b2b67919-4685-4160-84a9-ef4c95e3c4d0", - "children": [ - { - "type": "tabset", - "id": "#080955c7-5c99-4292-91d2-4098549eb723", - "weight": 0, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "iext", - "name": "IEXT", - "component": "extension-definitions", - "enableClose": false, - "icon": "material:extension" - } - ] - }, - { - "type": "tabset", - "id": "EDITORS", - "weight": 1, - "selected": -1, - "enableDeleteWhenEmpty": false, - "enableClose": false, - "children": [] - }, - { - "type": "tabset", - "id": "#d09bd993-d495-414b-9912-b8baaa9bb14b", - "weight": 0, - "children": [ - { - "type": "tab", - "id": "PROPERTIES", - "name": "Properties", - "component": "propertiesPanel", - "enableClose": false, - "icon": "svg:properties" - } - ] - } - ] - } - } - }, - "rootRuntime": { - "version": 54, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#a43ac672-2616-4944-8717-91a4e1c03585", - "children": [ - { - "type": "row", - "id": "#0f8ae2a8-2dc2-414e-853a-34f68ae951b6", - "weight": 0, - "width": 320, - "children": [ - { - "type": "tabset", - "id": "#a6f46c99-d540-48ed-94b7-1e184ee7c573", - "weight": 1, - "children": [ - { - "type": "tab", - "id": "PAGES", - "name": "Pages", - "component": "pages", - "enableClose": false, - "icon": "svg:pages" - }, - { - "type": "tab", - "id": "WIDGETS", - "name": "User Widgets", - "component": "widgets", - "enableClose": false, - "icon": "svg:user_widgets" - }, - { - "type": "tab", - "id": "ACTIONS", - "name": "User Actions", - "component": "actions", - "enableClose": false, - "icon": "material:code" - } - ] - }, - { - "type": "tabset", - "id": "#f047cc32-3e19-4264-a475-e4e93ccfde20", - "weight": 1, - "children": [ - { - "type": "tab", - "id": "#7e6c4797-a991-4dae-9da4-ad98b5e7883f", - "name": "Active Flows", - "component": "active-flows", - "enableClose": false, - "icon": "svg:active_flows_panel" - } - ] - }, - { - "type": "tabset", - "id": "#a7475a9e-3902-4e1b-b8a7-7550ff01cca8", - "weight": 2, - "children": [ - { - "type": "tab", - "id": "#d643a551-7756-4d29-86d0-10e86e53a294", - "name": "Watch", - "component": "watch", - "enableClose": false, - "icon": "svg:watch_panel" - } - ] - } - ] - }, - { - "type": "tabset", - "id": "RUNTIME-EDITORS", - "weight": 1, - "selected": -1, - "enableDeleteWhenEmpty": false, - "enableClose": false, - "children": [] - }, - { - "type": "row", - "id": "#71e6dd75-ddd4-40b8-975b-3272ead0477b", - "weight": 0, - "width": 320, - "children": [ - { - "type": "tabset", - "id": "#6595acef-22bf-46f5-be59-df41482a4a83", - "weight": 1, - "children": [ - { - "type": "tab", - "id": "#cc642917-ba93-499c-aa59-8dcc4c7776df", - "name": "Queue", - "component": "queue", - "enableClose": false, - "icon": "svg:queue_panel" - }, - { - "type": "tab", - "id": "BREAKPOINTS_PALETTE", - "name": "Breakpoints", - "component": "breakpointsPanel", - "enableClose": false, - "icon": "svg:breakpoints_panel" - } - ] - }, - { - "type": "tabset", - "id": "#d36b668d-8b2f-4a74-b5ed-951d19bf1524", - "weight": 2, - "children": [ - { - "type": "tab", - "id": "DEBUGGER_LOGS", - "name": "Logs", - "component": "logs", - "enableClose": false, - "icon": "svg:log" - } - ] - } - ] - } - ] - } - } - }, - "bitmaps": { - "version": 2, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#b55de758-edd5-48b9-9b22-874c5450f37f", - "children": [ - { - "type": "row", - "id": "#b8198683-523d-4bdd-8087-8574a4b770bb", - "children": [ - { - "type": "tabset", - "id": "#34511c01-59d9-4ef6-8a2e-b2759f75b3bb", - "weight": 75, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#744eea4a-2779-479d-b8f3-a118cc41d3ee", - "name": "Bitmaps", - "component": "bitmaps", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#8747308c-9ce6-42c7-bbe9-29c1cb998754", - "weight": 25, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#7fc02ea1-6dad-4655-837a-e232bd8c534f", - "name": "Preview", - "component": "preview", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "fonts": { - "version": 1, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#2ea5af5a-17fe-451e-ad7b-00910b5259e4", - "children": [ - { - "type": "tabset", - "id": "#5e71ee90-1fb3-4999-99f6-a82fa580604f", - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#72a3c956-9dcf-4a15-9df8-037a9ac0cf26", - "component": "glyphs", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#e82e841b-00dd-4151-867b-53424eb75d18", - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#0ddd1190-fea9-4f26-adfc-bd21e6102a61", - "component": "editor", - "enableClose": false - } - ] - } - ] - } - } - }, - "scpi": { - "version": 3, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#22a6fbfe-b2bb-4849-b989-e83e73bd1016", - "children": [ - { - "type": "row", - "id": "#a2d4f481-49c7-4a40-a9e7-75555a8b71ec", - "children": [ - { - "type": "tabset", - "id": "#b44a45d2-c03e-4b97-b7ab-7551fdbcc384", - "children": [ - { - "type": "tab", - "id": "SCPI_SUBSYSTEMS", - "name": "Subsystems", - "component": "subsystems", - "enableClose": false - }, - { - "type": "tab", - "id": "SCPI_ENUMS", - "name": "Enums", - "component": "enums", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#0395b4cb-d30e-421f-82d4-56e663c59caf", - "children": [ - { - "type": "tab", - "id": "SCPI_COMMANDS", - "name": "Commands", - "component": "commands", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "styles": { - "version": 2, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#4ea9878e-ad43-431c-a0a4-a40a45a53e5a", - "children": [ - { - "type": "row", - "id": "#a4b21271-94cb-4816-8831-fde35ed6189c", - "children": [ - { - "type": "tabset", - "id": "#485604a3-3fab-4295-896b-626b80028b83", - "weight": 75, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#f15072a4-77e1-4ed6-b2c0-f7a736bee882", - "name": "Styles", - "component": "styles", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#d302727d-9e26-4cfc-9d31-6710e7bb7166", - "weight": 25, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#855efeb4-3562-43e9-a55c-2648721c167d", - "name": "Preview", - "component": "preview", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "lvglStyles": { - "version": 1, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#ac76d517-19db-4fea-a148-bbce755bf4c4", - "children": [ - { - "type": "row", - "id": "#e08908f6-dd8f-4089-a036-84d789b8830c", - "children": [ - { - "type": "tabset", - "id": "#d51db365-ee7b-40cb-a504-3c0a4b819376", - "weight": 75, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#44a5b74a-2c2d-4c31-b60a-3c0757f6ed84", - "name": "Styles", - "component": "styles", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#82b7d1f7-6694-4fe6-8cd7-8903450b7b9c", - "weight": 25, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#2fdb6590-2ef4-433b-8bae-5529230e3f9d", - "name": "Preview", - "component": "preview", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "themes": { - "version": 1, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#66fe648a-34c4-4baf-9841-d86d00d4f507", - "children": [ - { - "type": "row", - "id": "#5190dcac-8e3d-4003-99a9-e3de5a927e01", - "children": [ - { - "type": "tabset", - "id": "#84e2d05b-af0e-469f-bc80-3636215e49a0", - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#2f71e566-96f1-475b-98ac-5ab63fb3d78e", - "component": "themes", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#988ee8f5-19d0-437f-b19d-90f6235c2ad9", - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#32f1fb0d-4b44-437f-aedd-6737a401fcd6", - "component": "colors", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "texts": { - "version": 7, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#64161130-e8ee-4b1f-aaec-259990604f24", - "children": [ - { - "type": "row", - "id": "#bdbe0b98-92ac-452a-92a0-6bc6954c4333", - "children": [ - { - "type": "tabset", - "id": "#97004503-f269-4ea4-a852-fe7226017b9f", - "children": [ - { - "type": "tab", - "id": "TEXT_RESOURCES", - "name": "Text resources", - "component": "resources", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#318942c1-a99a-4dc3-ac71-be16ac3ce77c", - "children": [ - { - "type": "tab", - "id": "LANGUAGES", - "name": "Languages", - "component": "languages", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#2999c26b-cc84-4812-ad1f-fec3cfcc8ddc", - "children": [ - { - "type": "tab", - "id": "TEXTS_STATISTICS", - "name": "Statistics", - "component": "statistics", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "lvglGroups": { - "version": 3, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#1c2b56c5-6ea2-4723-a96e-1a7707b9ea01", - "children": [ - { - "type": "row", - "id": "#a49706c9-95b6-415e-86db-fbb70153fb94", - "children": [ - { - "type": "tabset", - "id": "#1812ad34-cd62-414d-82d6-9523aa06ebb4", - "weight": 50, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": true, - "children": [ - { - "type": "tab", - "id": "#0dfcb562-0504-4fbf-bd9c-bfdb3a14a187", - "name": "Groups", - "component": "groups", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#44ec1786-9532-4906-8d38-eb87b29ce062", - "weight": 50, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": true, - "children": [ - { - "type": "tab", - "id": "#c7bdcb82-9176-4b58-9996-941c49144612", - "name": "Group Widgets", - "component": "order", - "enableClose": false - } - ] - } - ] - } - ] - } - } - } - }, - "selectedBuildConfiguration": "Default", - "features": {}, - "objects": { - "[Tonex_Controller_240_280.eez-project]:/userPages/0[flow-state]": { - "selection": { - "0": { - "0": { - "5": {}, - "8": { - "0": { - "$selected": true - } - } - } - } - }, - "transform": { - "translate": { - "x": -277.49999999999994, - "y": -329.3333333333332 - }, - "scale": 2 - }, - "timeline": { - "isEditorActive": false, - "position": 0, - "secondToPx": 200, - "scrollLeft": 0 - } - } - }, - "activeOutputSection": 0, - "searchPattern": "", - "searchMatchCase": false, - "searchMatchWholeWord": false, - "replaceEnabled": false, - "replaceText": "", - "breakpoints": {}, - "watchExpressions": [], - "showComponentDescriptions": true, - "logsPanelFilter": "all", - "selectedStylePropertyName": "", - "lvglPart": "MAIN", - "lvglState": "DEFAULT", - "lvglExpandedPropertiesGroup": [ - "TEXT" - ], - "showInactiveFlowsInDebugger": true, - "globalFlowZoom": true, - "flowZoom": 2, - "implementationLanguage": "C" -} \ No newline at end of file diff --git a/ui_design_280x240land/Tonex_Controller_280_240.eez-project-ui-state b/ui_design_280x240land/Tonex_Controller_280_240.eez-project-ui-state deleted file mode 100644 index 9e283f49..00000000 --- a/ui_design_280x240land/Tonex_Controller_280_240.eez-project-ui-state +++ /dev/null @@ -1,1018 +0,0 @@ -{ - "navigation": { - "selectedUserPageObject": "[Tonex_Controller_280_240.eez-project]:/userPages/0", - "subnavigationSelectedItems": {} - }, - "layoutModel": { - "rootEditor": { - "version": 115, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [ - { - "type": "border", - "location": "top", - "children": [] - }, - { - "type": "border", - "size": 240, - "location": "right", - "children": [ - { - "type": "tab", - "id": "styles", - "name": "Styles", - "component": "styles", - "enableClose": false, - "icon": "material:format_color_fill" - }, - { - "type": "tab", - "id": "fonts", - "name": "Fonts", - "component": "fonts", - "enableClose": false, - "icon": "material:font_download" - }, - { - "type": "tab", - "id": "bitmaps", - "name": "Bitmaps", - "component": "bitmaps", - "enableClose": false, - "icon": "material:image" - }, - { - "type": "tab", - "id": "themes", - "name": "Themes", - "component": "themesSideView", - "enableClose": false, - "icon": "svg:palette" - }, - { - "type": "tab", - "id": "lvgl-groups", - "name": "Groups", - "component": "lvgl-groups", - "enableClose": false, - "icon": "material:view_compact" - } - ] - }, - { - "type": "border", - "selected": 0, - "location": "bottom", - "children": [ - { - "type": "tab", - "id": "CHECKS", - "name": "Checks", - "component": "checksMessages", - "enableClose": false - }, - { - "type": "tab", - "id": "OUTPUT", - "name": "Output", - "component": "outputMessages", - "enableClose": false - }, - { - "type": "tab", - "id": "SEARCH", - "name": "Search", - "component": "search", - "enableClose": false - }, - { - "type": "tab", - "id": "REFERENCES", - "name": "References", - "component": "references", - "enableClose": false - } - ] - }, - { - "type": "border", - "size": 240, - "location": "left", - "children": [] - } - ], - "layout": { - "type": "row", - "id": "#3420f05d-51c8-4030-ab25-f9b98e6e0cb8", - "children": [ - { - "type": "row", - "id": "#ac6751c6-c71a-4dcc-9538-199021e65912", - "weight": 15, - "children": [ - { - "type": "tabset", - "id": "#b9877467-24c2-433a-9213-512d4b820daa", - "weight": 1, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "PAGES", - "name": "Pages", - "component": "pages", - "enableClose": false, - "icon": "svg:pages" - }, - { - "type": "tab", - "id": "WIDGETS", - "name": "User Widgets", - "component": "widgets", - "enableClose": false, - "icon": "svg:user_widgets" - }, - { - "type": "tab", - "id": "ACTIONS", - "name": "User Actions", - "component": "actions", - "enableClose": false, - "icon": "material:code" - } - ] - }, - { - "type": "tabset", - "id": "#ebdb7e33-0cd8-48d4-9b8d-81045787402a", - "weight": 1, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "#58d2ac59-db1f-4523-bfde-9f4e4767d878", - "name": "Widgets Structure", - "component": "flow-structure", - "enableClose": false, - "icon": "svg:hierarchy" - } - ] - }, - { - "type": "tabset", - "id": "#4088a88b-0443-49fd-b214-aeb44136d6a3", - "weight": 1, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "VARIABLES", - "name": "Variables", - "component": "variables", - "enableClose": false, - "icon": "svg:variable" - } - ] - } - ] - }, - { - "type": "tabset", - "id": "EDITORS", - "weight": 56.77298311444653, - "enableDeleteWhenEmpty": false, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "#517098c7-cc1c-4e81-83e0-ffce0ed65034", - "name": "Screen1", - "component": "editor", - "config": { - "objectPath": "[Tonex_Controller_280_240.eez-project]:/userPages/0", - "permanent": false - }, - "icon": "svg:page" - } - ] - }, - { - "type": "row", - "id": "#32f1ac39-50b2-4925-acb8-9a97b3ea0674", - "weight": 28.22701688555347, - "children": [ - { - "type": "tabset", - "id": "#83223410-f113-440c-aca6-393d01798616", - "weight": 2, - "children": [ - { - "type": "tab", - "id": "PROPERTIES", - "name": "Properties", - "component": "propertiesPanel", - "enableClose": false, - "icon": "svg:properties" - } - ], - "active": true - }, - { - "type": "tabset", - "id": "#783f5ed8-fb57-4ff7-8e90-13138d5e2490", - "weight": 1, - "children": [ - { - "type": "tab", - "id": "COMPONENTS_PALETTE", - "name": "Components Palette", - "component": "componentsPalette", - "enableClose": false, - "icon": "svg:components" - } - ] - } - ] - } - ] - } - } - }, - "rootEditorForIEXT": { - "version": 5, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [ - { - "type": "border", - "location": "top", - "children": [] - }, - { - "type": "border", - "size": 240, - "location": "right", - "children": [] - }, - { - "type": "border", - "location": "bottom", - "children": [ - { - "type": "tab", - "id": "CHECKS", - "name": "Checks", - "component": "checksMessages", - "enableClose": false - }, - { - "type": "tab", - "id": "OUTPUT", - "name": "Output", - "component": "outputMessages", - "enableClose": false - }, - { - "type": "tab", - "id": "SEARCH", - "name": "Search", - "component": "search", - "enableClose": false - }, - { - "type": "tab", - "id": "REFERENCES", - "name": "References", - "component": "references", - "enableClose": false - } - ] - }, - { - "type": "border", - "size": 240, - "location": "left", - "children": [] - } - ], - "layout": { - "type": "row", - "id": "#4e54becf-2082-4899-80da-ef1e73301991", - "children": [ - { - "type": "tabset", - "id": "#9c666290-cd56-4850-a109-c957d5d7b13e", - "weight": 0, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "iext", - "name": "IEXT", - "component": "extension-definitions", - "enableClose": false, - "icon": "material:extension" - } - ] - }, - { - "type": "tabset", - "id": "EDITORS", - "weight": 1, - "selected": -1, - "enableDeleteWhenEmpty": false, - "enableClose": false, - "children": [] - }, - { - "type": "tabset", - "id": "#ec7cba4d-c8b6-425d-b65c-178fc4ca9de3", - "weight": 0, - "children": [ - { - "type": "tab", - "id": "PROPERTIES", - "name": "Properties", - "component": "propertiesPanel", - "enableClose": false, - "icon": "svg:properties" - } - ] - } - ] - } - } - }, - "rootRuntime": { - "version": 54, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#0216504d-894a-425e-8bcd-e78d139024a3", - "children": [ - { - "type": "row", - "id": "#36a0b95c-f4d3-499a-90ac-f75aeca50f32", - "weight": 0, - "width": 320, - "children": [ - { - "type": "tabset", - "id": "#74939d84-d508-4722-9708-f3be46751878", - "weight": 1, - "children": [ - { - "type": "tab", - "id": "PAGES", - "name": "Pages", - "component": "pages", - "enableClose": false, - "icon": "svg:pages" - }, - { - "type": "tab", - "id": "WIDGETS", - "name": "User Widgets", - "component": "widgets", - "enableClose": false, - "icon": "svg:user_widgets" - }, - { - "type": "tab", - "id": "ACTIONS", - "name": "User Actions", - "component": "actions", - "enableClose": false, - "icon": "material:code" - } - ] - }, - { - "type": "tabset", - "id": "#9d289584-58b1-41be-9e81-a2779b6dd042", - "weight": 1, - "children": [ - { - "type": "tab", - "id": "#fd818ab7-2491-4696-9d2f-832bc43f17ef", - "name": "Active Flows", - "component": "active-flows", - "enableClose": false, - "icon": "svg:active_flows_panel" - } - ] - }, - { - "type": "tabset", - "id": "#e4664a64-8bca-44f2-af1a-1c7b0e53ff3c", - "weight": 2, - "children": [ - { - "type": "tab", - "id": "#f83d13b7-76a3-4c45-b76e-ef12ef2fbe49", - "name": "Watch", - "component": "watch", - "enableClose": false, - "icon": "svg:watch_panel" - } - ] - } - ] - }, - { - "type": "tabset", - "id": "RUNTIME-EDITORS", - "weight": 1, - "selected": -1, - "enableDeleteWhenEmpty": false, - "enableClose": false, - "children": [] - }, - { - "type": "row", - "id": "#9d80fe9f-ad8a-4eb6-a5c8-dc67ba6760e3", - "weight": 0, - "width": 320, - "children": [ - { - "type": "tabset", - "id": "#21aabbf7-ee8d-4cca-8ce5-fcfbeddbbcba", - "weight": 1, - "children": [ - { - "type": "tab", - "id": "#9ff67d4d-46ce-4f4b-9f17-d38a19169936", - "name": "Queue", - "component": "queue", - "enableClose": false, - "icon": "svg:queue_panel" - }, - { - "type": "tab", - "id": "BREAKPOINTS_PALETTE", - "name": "Breakpoints", - "component": "breakpointsPanel", - "enableClose": false, - "icon": "svg:breakpoints_panel" - } - ] - }, - { - "type": "tabset", - "id": "#33a2506f-ce03-48eb-b883-2e8a1aad6b94", - "weight": 2, - "children": [ - { - "type": "tab", - "id": "DEBUGGER_LOGS", - "name": "Logs", - "component": "logs", - "enableClose": false, - "icon": "svg:log" - } - ] - } - ] - } - ] - } - } - }, - "bitmaps": { - "version": 2, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#0ae570ae-fb73-448a-a2fc-f26ac59db066", - "children": [ - { - "type": "row", - "id": "#fee05581-8ed8-4036-9f17-ac41d433ced0", - "children": [ - { - "type": "tabset", - "id": "#a908c9b2-3e35-482e-acc6-dda7226f4e7d", - "weight": 75, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#d96cbac7-8b36-42fb-94fc-3cb41f511700", - "name": "Bitmaps", - "component": "bitmaps", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#bc82c5d6-6063-4192-856c-5d15aa803f5d", - "weight": 25, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#e9a5f5db-6880-4696-86e3-aee9df299c3e", - "name": "Preview", - "component": "preview", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "fonts": { - "version": 1, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#7c1c99e1-b37f-4d07-952d-2f19232de925", - "children": [ - { - "type": "tabset", - "id": "#f4b62620-0017-40dc-a68f-8f625aa42f14", - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#4ea6cc48-e28a-4dfc-a23b-0a282a5f77b9", - "component": "glyphs", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#069b1c60-63e2-4822-97f6-da6b76ed808e", - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#fb1a7f09-e2c6-4538-b8b7-8b3082335194", - "component": "editor", - "enableClose": false - } - ] - } - ] - } - } - }, - "scpi": { - "version": 3, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#8c328ef4-41bb-4da5-9977-5554ba03ffe9", - "children": [ - { - "type": "row", - "id": "#9a20f8e1-28e1-4d27-a0a5-1dc2b43fcace", - "children": [ - { - "type": "tabset", - "id": "#ff02189a-04c9-4a11-a9f2-e68488ddb30d", - "children": [ - { - "type": "tab", - "id": "SCPI_SUBSYSTEMS", - "name": "Subsystems", - "component": "subsystems", - "enableClose": false - }, - { - "type": "tab", - "id": "SCPI_ENUMS", - "name": "Enums", - "component": "enums", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#844dd9fa-6f2a-49c1-b112-67cbe0d35dbb", - "children": [ - { - "type": "tab", - "id": "SCPI_COMMANDS", - "name": "Commands", - "component": "commands", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "styles": { - "version": 2, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#23fc0256-fd41-479f-9b17-37c4e8c444cf", - "children": [ - { - "type": "row", - "id": "#ba76c72f-bc70-4751-891b-1fc274c111ae", - "children": [ - { - "type": "tabset", - "id": "#f9dbdf04-abb8-4105-afba-5281ba17d30c", - "weight": 75, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#46abd785-b2cd-4faf-b374-0072f750f4ab", - "name": "Styles", - "component": "styles", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#8a875a26-d2ff-46b5-858a-78c13cfbcc12", - "weight": 25, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#46f57580-22b1-4891-90eb-178ce7ae4a36", - "name": "Preview", - "component": "preview", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "lvglStyles": { - "version": 1, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#ea22eb3d-0383-43b3-8634-1991cd57aa24", - "children": [ - { - "type": "row", - "id": "#dea565b5-b278-4b2a-aa35-7f0f1a122dc1", - "children": [ - { - "type": "tabset", - "id": "#9f2238e4-d39a-4a11-8540-18eca4d05ad9", - "weight": 75, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#4b0a0082-3963-42c2-9967-4b09448b4878", - "name": "Styles", - "component": "styles", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#e06085b1-2b13-43a2-95ec-0ee883fdf8bc", - "weight": 25, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#f87b387c-287a-481d-b9cf-eeac67b7c04e", - "name": "Preview", - "component": "preview", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "themes": { - "version": 1, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#12f93469-ebbc-4d85-b319-4f24cbb0f04a", - "children": [ - { - "type": "row", - "id": "#a34510d9-8266-4999-bad3-211945e4e085", - "children": [ - { - "type": "tabset", - "id": "#9a7634ef-165a-4679-9527-0d4fe487f4e1", - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#450e3fe0-9bbd-4871-8cd2-f299ce538dc3", - "component": "themes", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#f20c55f7-2d66-4855-911a-f257a1e3d368", - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#0d082cb4-3cd2-4a90-bfdf-1356b136d919", - "component": "colors", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "texts": { - "version": 7, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#7b1d342c-b2d8-4478-981c-02b3142e3631", - "children": [ - { - "type": "row", - "id": "#5daedd68-c466-4214-aa4c-ca61dc36f55d", - "children": [ - { - "type": "tabset", - "id": "#ba78b3df-3c95-4ffc-8ee6-366da9104d89", - "children": [ - { - "type": "tab", - "id": "TEXT_RESOURCES", - "name": "Text resources", - "component": "resources", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#537ba6f5-4006-4594-8952-479a93e95928", - "children": [ - { - "type": "tab", - "id": "LANGUAGES", - "name": "Languages", - "component": "languages", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#9776c497-cb5f-4d7d-99a9-7b3c5e5b3d3e", - "children": [ - { - "type": "tab", - "id": "TEXTS_STATISTICS", - "name": "Statistics", - "component": "statistics", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "lvglGroups": { - "version": 3, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#2cb3bdfa-2d2b-4dec-8a11-b9bb5f2eb54b", - "children": [ - { - "type": "row", - "id": "#d1a7e89e-f32e-49a6-afc1-8b1ffc6b64c6", - "children": [ - { - "type": "tabset", - "id": "#6ae8c2b7-c2bc-4ce9-84c7-a5780db9b85c", - "weight": 50, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": true, - "children": [ - { - "type": "tab", - "id": "#789c3114-f0f4-4604-921b-0c7b07ab217e", - "name": "Groups", - "component": "groups", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#fe78eabc-3505-4a13-8b81-eab3fe9a0b4c", - "weight": 50, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": true, - "children": [ - { - "type": "tab", - "id": "#f4c2a014-bc58-4928-8b09-30c8ae05c3a6", - "name": "Group Widgets", - "component": "order", - "enableClose": false - } - ] - } - ] - } - ] - } - } - } - }, - "selectedBuildConfiguration": "Default", - "features": {}, - "objects": { - "[Tonex_Controller_280_240.eez-project]:/userPages/0[flow-state]": { - "selection": { - "0": { - "0": { - "5": {}, - "8": { - "0": { - "$selected": true - } - } - } - } - }, - "transform": { - "translate": { - "x": -253.2204184704185, - "y": -288.39069264069235 - }, - "scale": 2.5 - }, - "timeline": { - "isEditorActive": false, - "position": 0, - "secondToPx": 200, - "scrollLeft": 0 - } - } - }, - "activeOutputSection": 0, - "searchPattern": "", - "searchMatchCase": false, - "searchMatchWholeWord": false, - "replaceEnabled": false, - "replaceText": "", - "breakpoints": {}, - "watchExpressions": [], - "showComponentDescriptions": true, - "logsPanelFilter": "all", - "selectedStylePropertyName": "", - "lvglPart": "MAIN", - "lvglState": "DEFAULT", - "lvglExpandedPropertiesGroup": [ - "POSITION AND SIZE" - ], - "showInactiveFlowsInDebugger": true, - "globalFlowZoom": true, - "flowZoom": 2.5, - "implementationLanguage": "C" -} \ No newline at end of file diff --git a/ui_design_320x170land/Tonex_Controller_320_170.eez-project-ui-state b/ui_design_320x170land/Tonex_Controller_320_170.eez-project-ui-state deleted file mode 100644 index 04f5f740..00000000 --- a/ui_design_320x170land/Tonex_Controller_320_170.eez-project-ui-state +++ /dev/null @@ -1,1043 +0,0 @@ -{ - "navigation": { - "selectedUserPageObject": "[Tonex_Controller_320_170.eez-project]:/userPages/0", - "selectedBitmapObject": "[Tonex_Controller_320_170.eez-project]:/bitmaps/3", - "subnavigationSelectedItems": {} - }, - "layoutModel": { - "rootEditor": { - "version": 115, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [ - { - "type": "border", - "location": "top", - "children": [] - }, - { - "type": "border", - "selected": 2, - "size": 240, - "location": "right", - "children": [ - { - "type": "tab", - "id": "styles", - "name": "Styles", - "component": "styles", - "enableClose": false, - "icon": "material:format_color_fill" - }, - { - "type": "tab", - "id": "fonts", - "name": "Fonts", - "component": "fonts", - "enableClose": false, - "icon": "material:font_download" - }, - { - "type": "tab", - "id": "bitmaps", - "name": "Bitmaps", - "component": "bitmaps", - "enableClose": false, - "icon": "material:image" - }, - { - "type": "tab", - "id": "themes", - "name": "Themes", - "component": "themesSideView", - "enableClose": false, - "icon": "svg:palette" - }, - { - "type": "tab", - "id": "lvgl-groups", - "name": "Groups", - "component": "lvgl-groups", - "enableClose": false, - "icon": "material:view_compact" - } - ] - }, - { - "type": "border", - "selected": 0, - "location": "bottom", - "children": [ - { - "type": "tab", - "id": "CHECKS", - "name": "Checks", - "component": "checksMessages", - "enableClose": false - }, - { - "type": "tab", - "id": "OUTPUT", - "name": "Output", - "component": "outputMessages", - "enableClose": false - }, - { - "type": "tab", - "id": "SEARCH", - "name": "Search", - "component": "search", - "enableClose": false - }, - { - "type": "tab", - "id": "REFERENCES", - "name": "References", - "component": "references", - "enableClose": false - } - ] - }, - { - "type": "border", - "size": 240, - "location": "left", - "children": [] - } - ], - "layout": { - "type": "row", - "id": "#c3476a85-5cba-4f6d-a073-13af26efd213", - "children": [ - { - "type": "row", - "id": "#936a3afa-4a6f-4549-86c9-51984ffb5fd6", - "weight": 15, - "children": [ - { - "type": "tabset", - "id": "#246a2fe7-760f-471d-a165-1a9eba1333cd", - "weight": 1, - "selected": 2, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "PAGES", - "name": "Pages", - "component": "pages", - "enableClose": false, - "icon": "svg:pages" - }, - { - "type": "tab", - "id": "WIDGETS", - "name": "User Widgets", - "component": "widgets", - "enableClose": false, - "icon": "svg:user_widgets" - }, - { - "type": "tab", - "id": "ACTIONS", - "name": "User Actions", - "component": "actions", - "enableClose": false, - "icon": "material:code" - } - ] - }, - { - "type": "tabset", - "id": "#f899e6e8-7524-48fc-ab3d-0429859626f7", - "weight": 1, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "#0ef96ebb-40b0-4dc1-bd45-5e1b70d18c4d", - "name": "Widgets Structure", - "component": "flow-structure", - "enableClose": false, - "icon": "svg:hierarchy" - } - ], - "active": true - }, - { - "type": "tabset", - "id": "#d5f6cd1c-927e-410b-8a59-ee6f6d3432f4", - "weight": 1, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "VARIABLES", - "name": "Variables", - "component": "variables", - "enableClose": false, - "icon": "svg:variable" - } - ] - } - ] - }, - { - "type": "tabset", - "id": "EDITORS", - "weight": 65, - "enableDeleteWhenEmpty": false, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "#148fbe28-a39e-4f15-aafb-d21d293a791a", - "name": "Screen1", - "component": "editor", - "config": { - "objectPath": "[Tonex_Controller_320_170.eez-project]:/userPages/0", - "permanent": false - }, - "icon": "svg:page" - } - ] - }, - { - "type": "row", - "id": "#3cb0a8c9-9c40-4b6f-8f56-446d5ace3ca9", - "weight": 20, - "children": [ - { - "type": "tabset", - "id": "#58093f7b-8802-4286-95e6-dc60b5a9bfd1", - "weight": 2, - "children": [ - { - "type": "tab", - "id": "PROPERTIES", - "name": "Properties", - "component": "propertiesPanel", - "enableClose": false, - "icon": "svg:properties" - } - ] - }, - { - "type": "tabset", - "id": "#c8f5559f-9d02-48f0-bacd-f2938e39bcb9", - "weight": 1, - "children": [ - { - "type": "tab", - "id": "COMPONENTS_PALETTE", - "name": "Components Palette", - "component": "componentsPalette", - "enableClose": false, - "icon": "svg:components" - } - ] - } - ] - } - ] - } - } - }, - "rootEditorForIEXT": { - "version": 5, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [ - { - "type": "border", - "location": "top", - "children": [] - }, - { - "type": "border", - "size": 240, - "location": "right", - "children": [] - }, - { - "type": "border", - "location": "bottom", - "children": [ - { - "type": "tab", - "id": "CHECKS", - "name": "Checks", - "component": "checksMessages", - "enableClose": false - }, - { - "type": "tab", - "id": "OUTPUT", - "name": "Output", - "component": "outputMessages", - "enableClose": false - }, - { - "type": "tab", - "id": "SEARCH", - "name": "Search", - "component": "search", - "enableClose": false - }, - { - "type": "tab", - "id": "REFERENCES", - "name": "References", - "component": "references", - "enableClose": false - } - ] - }, - { - "type": "border", - "size": 240, - "location": "left", - "children": [] - } - ], - "layout": { - "type": "row", - "id": "#4b66d231-ba0c-456d-b4e4-c78663803990", - "children": [ - { - "type": "tabset", - "id": "#60343ae5-cc8f-485c-90c0-2398e0247068", - "weight": 0, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "iext", - "name": "IEXT", - "component": "extension-definitions", - "enableClose": false, - "icon": "material:extension" - } - ] - }, - { - "type": "tabset", - "id": "EDITORS", - "weight": 1, - "selected": -1, - "enableDeleteWhenEmpty": false, - "enableClose": false, - "children": [] - }, - { - "type": "tabset", - "id": "#fd1a1cec-bc6c-4108-86b6-c8de306ebbb9", - "weight": 0, - "children": [ - { - "type": "tab", - "id": "PROPERTIES", - "name": "Properties", - "component": "propertiesPanel", - "enableClose": false, - "icon": "svg:properties" - } - ] - } - ] - } - } - }, - "rootRuntime": { - "version": 54, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#af8d49c5-325d-4729-bb99-25b33e4e8838", - "children": [ - { - "type": "row", - "id": "#15c68e21-decd-4f2d-b90e-ed63b18519d0", - "weight": 0, - "width": 320, - "children": [ - { - "type": "tabset", - "id": "#23d9dfa9-3807-4949-b333-1a41e22c45b0", - "weight": 1, - "children": [ - { - "type": "tab", - "id": "PAGES", - "name": "Pages", - "component": "pages", - "enableClose": false, - "icon": "svg:pages" - }, - { - "type": "tab", - "id": "WIDGETS", - "name": "User Widgets", - "component": "widgets", - "enableClose": false, - "icon": "svg:user_widgets" - }, - { - "type": "tab", - "id": "ACTIONS", - "name": "User Actions", - "component": "actions", - "enableClose": false, - "icon": "material:code" - } - ] - }, - { - "type": "tabset", - "id": "#33912c9f-0fb6-442b-b2dc-3b18cea484b2", - "weight": 1, - "children": [ - { - "type": "tab", - "id": "#73183674-83ac-41cd-8ae8-9af6239779f8", - "name": "Active Flows", - "component": "active-flows", - "enableClose": false, - "icon": "svg:active_flows_panel" - } - ] - }, - { - "type": "tabset", - "id": "#77f63910-bbcc-4474-a4b8-7542e27b6dd2", - "weight": 2, - "children": [ - { - "type": "tab", - "id": "#8322ed6e-4c4e-45fa-9b4c-a009968a0c43", - "name": "Watch", - "component": "watch", - "enableClose": false, - "icon": "svg:watch_panel" - } - ] - } - ] - }, - { - "type": "tabset", - "id": "RUNTIME-EDITORS", - "weight": 1, - "selected": -1, - "enableDeleteWhenEmpty": false, - "enableClose": false, - "children": [] - }, - { - "type": "row", - "id": "#89fab6fe-44c1-4b4c-8486-471354a1634f", - "weight": 0, - "width": 320, - "children": [ - { - "type": "tabset", - "id": "#d0ec0720-ab66-4484-a1cf-6c02b3e5333f", - "weight": 1, - "children": [ - { - "type": "tab", - "id": "#10d8a947-dbc3-4362-baaa-db3a7df3e37e", - "name": "Queue", - "component": "queue", - "enableClose": false, - "icon": "svg:queue_panel" - }, - { - "type": "tab", - "id": "BREAKPOINTS_PALETTE", - "name": "Breakpoints", - "component": "breakpointsPanel", - "enableClose": false, - "icon": "svg:breakpoints_panel" - } - ] - }, - { - "type": "tabset", - "id": "#8cb31e77-a010-4fee-a286-4755935ea373", - "weight": 2, - "children": [ - { - "type": "tab", - "id": "DEBUGGER_LOGS", - "name": "Logs", - "component": "logs", - "enableClose": false, - "icon": "svg:log" - } - ] - } - ] - } - ] - } - } - }, - "bitmaps": { - "version": 2, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#64de53ee-ef2a-4dd0-b5e8-05de6f5447f9", - "children": [ - { - "type": "row", - "id": "#30e42b81-7031-4f95-a1bf-358daaa6fa4e", - "children": [ - { - "type": "tabset", - "id": "#a4920205-d942-41a9-8dae-bc15f1d74e67", - "weight": 75, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#827cce2c-54f1-4e6f-ae59-b7e6bdad05ae", - "name": "Bitmaps", - "component": "bitmaps", - "enableClose": false - } - ], - "active": true - }, - { - "type": "tabset", - "id": "#a02185f5-a063-4521-a0ee-18d54b24b53a", - "weight": 25, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#2e247841-ef3a-4128-8463-e24426b054e6", - "name": "Preview", - "component": "preview", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "fonts": { - "version": 1, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#c94be499-1dcc-4784-bf28-a9a0116ca2d7", - "children": [ - { - "type": "tabset", - "id": "#6e92cfd4-62a4-4b85-af7c-1d66979e8a52", - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#4dcd6ee7-101c-4c8b-8128-510f9f754789", - "component": "glyphs", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#16599762-ca85-4087-9474-c2741cb599ff", - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#68488e09-8fd0-4959-ad9a-1610a1d5121c", - "component": "editor", - "enableClose": false - } - ] - } - ] - } - } - }, - "scpi": { - "version": 3, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#a97cf843-bf0a-4c55-8f2f-00fd4696e1af", - "children": [ - { - "type": "row", - "id": "#c84c7a1b-8721-49bd-9db2-3896dc7a4e33", - "children": [ - { - "type": "tabset", - "id": "#8328c277-edf6-4d9f-8db6-6d0b54b64dee", - "children": [ - { - "type": "tab", - "id": "SCPI_SUBSYSTEMS", - "name": "Subsystems", - "component": "subsystems", - "enableClose": false - }, - { - "type": "tab", - "id": "SCPI_ENUMS", - "name": "Enums", - "component": "enums", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#dd3f40d6-6133-4ac6-b604-b2801b9f218e", - "children": [ - { - "type": "tab", - "id": "SCPI_COMMANDS", - "name": "Commands", - "component": "commands", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "styles": { - "version": 2, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#514ca694-ab31-48ce-bfd0-fcf9d56e860c", - "children": [ - { - "type": "row", - "id": "#15f59a52-2491-4c30-964e-17155a4325e1", - "children": [ - { - "type": "tabset", - "id": "#94a4434f-b203-4480-80a4-bbc83ae6f7ef", - "weight": 75, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#ae99d1a8-322e-4a19-8e13-f37b35161867", - "name": "Styles", - "component": "styles", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#2ed6e4f4-3126-4d55-bfa0-071cb9c65436", - "weight": 25, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#29531068-a99a-4381-9ae5-8c253bfb5bcb", - "name": "Preview", - "component": "preview", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "lvglStyles": { - "version": 1, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#3c04ad17-9d64-4fac-8d98-de78101c08e4", - "children": [ - { - "type": "row", - "id": "#1d3065c2-ece2-4f45-b44b-5caa444577d6", - "children": [ - { - "type": "tabset", - "id": "#7250cb25-e9de-4a75-9e06-c3c00e6c3886", - "weight": 75, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#5874ceb8-e33d-422e-942f-103519e96481", - "name": "Styles", - "component": "styles", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#ca52e4d8-8aaa-498e-abce-66643188a92e", - "weight": 25, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#526e695f-5fc4-4854-a2f8-9947241050c2", - "name": "Preview", - "component": "preview", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "themes": { - "version": 1, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#349f8d3b-965a-4d84-a349-e5abaa177dc3", - "children": [ - { - "type": "row", - "id": "#ce276104-de5e-4dbc-aa19-62fb93c43ac2", - "children": [ - { - "type": "tabset", - "id": "#306be470-1891-45fc-84b2-731ee50adb89", - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#3f82def4-3dfb-4a50-b27f-d92ab49c7a83", - "component": "themes", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#fa289786-f2d5-4832-9eb8-7d51685cb79d", - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#9d7e02a8-04ce-4455-bc13-6cd1006f190d", - "component": "colors", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "texts": { - "version": 7, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#0eafb582-3c35-49fd-8a5c-566f48ae7d96", - "children": [ - { - "type": "row", - "id": "#2abac4aa-3486-4d3d-b1be-000008fbb0eb", - "children": [ - { - "type": "tabset", - "id": "#34760102-bba0-466f-85a7-131efb186312", - "children": [ - { - "type": "tab", - "id": "TEXT_RESOURCES", - "name": "Text resources", - "component": "resources", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#c3fb0ac8-0c6d-4e83-b466-3c613ed73b11", - "children": [ - { - "type": "tab", - "id": "LANGUAGES", - "name": "Languages", - "component": "languages", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#9059cce2-be10-4db3-b6b6-c9481e9774eb", - "children": [ - { - "type": "tab", - "id": "TEXTS_STATISTICS", - "name": "Statistics", - "component": "statistics", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "lvglGroups": { - "version": 3, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#64fe4e2e-dd7b-4181-a31e-3fdfbe5fc430", - "children": [ - { - "type": "row", - "id": "#b8ac3d9a-21e1-4c18-bfa7-a292e3f8e3ee", - "children": [ - { - "type": "tabset", - "id": "#24a76b26-07e3-4db0-a50e-0a9921b0d49e", - "weight": 50, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": true, - "children": [ - { - "type": "tab", - "id": "#afe288f7-5d79-49ba-9207-a08672044ca8", - "name": "Groups", - "component": "groups", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#96a28f54-4929-473a-8623-07b7b436c118", - "weight": 50, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": true, - "children": [ - { - "type": "tab", - "id": "#e6f1f15e-10ef-428c-ad6b-37fd3e788722", - "name": "Group Widgets", - "component": "order", - "enableClose": false - } - ] - } - ] - } - ] - } - } - } - }, - "selectedBuildConfiguration": "Default", - "features": {}, - "objects": { - "[Tonex_Controller_320_170.eez-project]:/userPages/0[flow-state]": { - "selection": { - "0": { - "0": { - "0": { - "4": { - "$selected": true - } - }, - "1": {}, - "5": {}, - "7": {}, - "8": { - "0": {} - } - } - } - }, - "transform": { - "translate": { - "x": -497.9785714285711, - "y": -319.5000000000001 - }, - "scale": 3 - }, - "timeline": { - "isEditorActive": false, - "position": 0, - "secondToPx": 200, - "scrollLeft": 0 - } - }, - "[Tonex_Controller_320_170.eez-project]:/userPages/1[flow-state]": { - "selection": {}, - "transform": { - "translate": { - "x": -240, - "y": -160 - }, - "scale": 2 - }, - "timeline": { - "isEditorActive": false, - "position": 0, - "secondToPx": 200, - "scrollLeft": 0 - } - } - }, - "activeOutputSection": 0, - "searchPattern": "", - "searchMatchCase": false, - "searchMatchWholeWord": false, - "replaceEnabled": false, - "replaceText": "", - "breakpoints": {}, - "watchExpressions": [], - "showComponentDescriptions": true, - "logsPanelFilter": "all", - "selectedStylePropertyName": "", - "lvglPart": "MAIN", - "lvglState": "DEFAULT", - "lvglExpandedPropertiesGroup": [ - "TEXT" - ], - "showInactiveFlowsInDebugger": true, - "globalFlowZoom": true, - "flowZoom": 3, - "implementationLanguage": "C" -} \ No newline at end of file diff --git a/ui_design_480x320land/Tonex_Controller_480_320.eez-project-ui-state b/ui_design_480x320land/Tonex_Controller_480_320.eez-project-ui-state deleted file mode 100644 index 50725dfb..00000000 --- a/ui_design_480x320land/Tonex_Controller_480_320.eez-project-ui-state +++ /dev/null @@ -1,1076 +0,0 @@ -{ - "navigation": { - "selectedUserPageObject": "[Tonex_Controller_480_320.eez-project]:/userPages/2", - "selectedBitmapObject": "[Tonex_Controller_480_320.eez-project]:/bitmaps/113", - "subnavigationSelectedItems": {} - }, - "layoutModel": { - "rootEditor": { - "version": 115, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [ - { - "type": "border", - "location": "top", - "children": [] - }, - { - "type": "border", - "selected": 2, - "size": 240, - "location": "right", - "children": [ - { - "type": "tab", - "id": "styles", - "name": "Styles", - "component": "styles", - "enableClose": false, - "icon": "material:format_color_fill" - }, - { - "type": "tab", - "id": "fonts", - "name": "Fonts", - "component": "fonts", - "enableClose": false, - "icon": "material:font_download" - }, - { - "type": "tab", - "id": "bitmaps", - "name": "Bitmaps", - "component": "bitmaps", - "enableClose": false, - "icon": "material:image" - }, - { - "type": "tab", - "id": "themes", - "name": "Themes", - "component": "themesSideView", - "enableClose": false, - "icon": "svg:palette" - }, - { - "type": "tab", - "id": "lvgl-groups", - "name": "Groups", - "component": "lvgl-groups", - "enableClose": false, - "icon": "material:view_compact" - } - ] - }, - { - "type": "border", - "selected": 0, - "location": "bottom", - "children": [ - { - "type": "tab", - "id": "CHECKS", - "name": "Checks", - "component": "checksMessages", - "enableClose": false - }, - { - "type": "tab", - "id": "OUTPUT", - "name": "Output", - "component": "outputMessages", - "enableClose": false - }, - { - "type": "tab", - "id": "SEARCH", - "name": "Search", - "component": "search", - "enableClose": false - }, - { - "type": "tab", - "id": "REFERENCES", - "name": "References", - "component": "references", - "enableClose": false - } - ] - }, - { - "type": "border", - "size": 240, - "location": "left", - "children": [] - } - ], - "layout": { - "type": "row", - "id": "#bf4b4481-3716-40e4-829a-f7f72fac71e6", - "children": [ - { - "type": "row", - "id": "#338dd98f-a3c2-4ab4-8117-2c7abb59b379", - "weight": 15, - "children": [ - { - "type": "tabset", - "id": "#e9c1201a-3c4b-425c-bf27-cc604f16dbe9", - "weight": 0.557257000659591, - "selected": 1, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "PAGES", - "name": "Pages", - "component": "pages", - "enableClose": false, - "icon": "svg:pages" - }, - { - "type": "tab", - "id": "WIDGETS", - "name": "User Widgets", - "component": "widgets", - "enableClose": false, - "icon": "svg:user_widgets" - }, - { - "type": "tab", - "id": "ACTIONS", - "name": "User Actions", - "component": "actions", - "enableClose": false, - "icon": "material:code" - } - ] - }, - { - "type": "tabset", - "id": "#0fbe2fd7-1c03-4b4c-bdf8-608c3733fd20", - "weight": 1.9412139473526413, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "#fdf4d932-1349-4470-9293-3eb5dc288de5", - "name": "Widgets Structure", - "component": "flow-structure", - "enableClose": false, - "icon": "svg:hierarchy" - } - ] - }, - { - "type": "tabset", - "id": "#62cf7ec7-919e-4384-af3d-7d918a99c908", - "weight": 0.5015290519877675, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "VARIABLES", - "name": "Variables", - "component": "variables", - "enableClose": false, - "icon": "svg:variable" - } - ] - } - ] - }, - { - "type": "tabset", - "id": "EDITORS", - "weight": 65, - "enableDeleteWhenEmpty": false, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "#dee75bb2-f325-4341-bdaa-55bf02902407", - "name": "ValSettings", - "component": "editor", - "config": { - "objectPath": "[Tonex_Controller_480_320.eez-project]:/userPages/2", - "permanent": false - }, - "icon": "svg:page" - } - ] - }, - { - "type": "row", - "id": "#5cc4ffb9-aa11-4e38-8e8d-0fcabce5df4b", - "weight": 20, - "children": [ - { - "type": "tabset", - "id": "#5d84708b-2568-42ca-8cee-2856efce9589", - "weight": 2, - "children": [ - { - "type": "tab", - "id": "PROPERTIES", - "name": "Properties", - "component": "propertiesPanel", - "enableClose": false, - "icon": "svg:properties" - } - ], - "active": true - }, - { - "type": "tabset", - "id": "#69e83743-5dcb-4e27-a2bc-7a691dbe7475", - "weight": 1, - "children": [ - { - "type": "tab", - "id": "COMPONENTS_PALETTE", - "name": "Components Palette", - "component": "componentsPalette", - "enableClose": false, - "icon": "svg:components" - } - ] - } - ] - } - ] - } - } - }, - "rootEditorForIEXT": { - "version": 5, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [ - { - "type": "border", - "location": "top", - "children": [] - }, - { - "type": "border", - "size": 240, - "location": "right", - "children": [] - }, - { - "type": "border", - "location": "bottom", - "children": [ - { - "type": "tab", - "id": "CHECKS", - "name": "Checks", - "component": "checksMessages", - "enableClose": false - }, - { - "type": "tab", - "id": "OUTPUT", - "name": "Output", - "component": "outputMessages", - "enableClose": false - }, - { - "type": "tab", - "id": "SEARCH", - "name": "Search", - "component": "search", - "enableClose": false - }, - { - "type": "tab", - "id": "REFERENCES", - "name": "References", - "component": "references", - "enableClose": false - } - ] - }, - { - "type": "border", - "size": 240, - "location": "left", - "children": [] - } - ], - "layout": { - "type": "row", - "id": "#d1a051a3-ec64-4714-89a7-6b35f68793f1", - "children": [ - { - "type": "tabset", - "id": "#266f4bdf-184d-4edf-8534-d27194e8d631", - "weight": 0, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "iext", - "name": "IEXT", - "component": "extension-definitions", - "enableClose": false, - "icon": "material:extension" - } - ] - }, - { - "type": "tabset", - "id": "EDITORS", - "weight": 1, - "selected": -1, - "enableDeleteWhenEmpty": false, - "enableClose": false, - "children": [] - }, - { - "type": "tabset", - "id": "#577e4105-6e4c-4c5f-a8a6-f2dfad5c76e4", - "weight": 0, - "children": [ - { - "type": "tab", - "id": "PROPERTIES", - "name": "Properties", - "component": "propertiesPanel", - "enableClose": false, - "icon": "svg:properties" - } - ] - } - ] - } - } - }, - "rootRuntime": { - "version": 54, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#44296eee-7b78-480c-8167-499dfd7a9310", - "children": [ - { - "type": "row", - "id": "#25b3f4be-098c-4922-97c8-b8b88458968e", - "weight": 0, - "width": 320, - "children": [ - { - "type": "tabset", - "id": "#3def83ed-e6f7-40ef-8a9b-8140546dfd99", - "weight": 1, - "children": [ - { - "type": "tab", - "id": "PAGES", - "name": "Pages", - "component": "pages", - "enableClose": false, - "icon": "svg:pages" - }, - { - "type": "tab", - "id": "WIDGETS", - "name": "User Widgets", - "component": "widgets", - "enableClose": false, - "icon": "svg:user_widgets" - }, - { - "type": "tab", - "id": "ACTIONS", - "name": "User Actions", - "component": "actions", - "enableClose": false, - "icon": "material:code" - } - ] - }, - { - "type": "tabset", - "id": "#6b438c23-b8d2-45ee-a73c-c67648e49375", - "weight": 1, - "children": [ - { - "type": "tab", - "id": "#a88d5703-43fe-4436-9b57-d4b3b164324c", - "name": "Active Flows", - "component": "active-flows", - "enableClose": false, - "icon": "svg:active_flows_panel" - } - ] - }, - { - "type": "tabset", - "id": "#4e7d1589-131a-43f3-b45d-28f63f4f7d2b", - "weight": 2, - "children": [ - { - "type": "tab", - "id": "#9fb5f5f5-b868-446a-b300-a7f9faf1dc24", - "name": "Watch", - "component": "watch", - "enableClose": false, - "icon": "svg:watch_panel" - } - ] - } - ] - }, - { - "type": "tabset", - "id": "RUNTIME-EDITORS", - "weight": 1, - "selected": -1, - "enableDeleteWhenEmpty": false, - "enableClose": false, - "children": [] - }, - { - "type": "row", - "id": "#076a83fc-8bd0-4faa-b0d7-5a8566e7d8e6", - "weight": 0, - "width": 320, - "children": [ - { - "type": "tabset", - "id": "#fbe89081-04ef-486f-b723-b8bdbd4059ca", - "weight": 1, - "children": [ - { - "type": "tab", - "id": "#61add337-0721-49c9-9375-ef26f8ddf9f1", - "name": "Queue", - "component": "queue", - "enableClose": false, - "icon": "svg:queue_panel" - }, - { - "type": "tab", - "id": "BREAKPOINTS_PALETTE", - "name": "Breakpoints", - "component": "breakpointsPanel", - "enableClose": false, - "icon": "svg:breakpoints_panel" - } - ] - }, - { - "type": "tabset", - "id": "#03ded84b-8af4-4b2c-8d31-a3a879ce03ee", - "weight": 2, - "children": [ - { - "type": "tab", - "id": "DEBUGGER_LOGS", - "name": "Logs", - "component": "logs", - "enableClose": false, - "icon": "svg:log" - } - ] - } - ] - } - ] - } - } - }, - "bitmaps": { - "version": 2, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#6bcb081e-6062-49a9-bd7a-956d0a57116a", - "children": [ - { - "type": "row", - "id": "#89496837-7fe7-47a5-9e6e-5aa8074bb5b6", - "children": [ - { - "type": "tabset", - "id": "#6af80b15-4c7f-42c1-b595-d170ab00fe8d", - "weight": 75, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#f07e4657-fa54-4c06-a2ca-881ab5c35b45", - "name": "Bitmaps", - "component": "bitmaps", - "enableClose": false - } - ], - "active": true - }, - { - "type": "tabset", - "id": "#fa5d713e-9550-4805-965e-26afa71d3204", - "weight": 25, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#c700a0d4-6056-4334-8700-76816b4a5499", - "name": "Preview", - "component": "preview", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "fonts": { - "version": 1, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#226a1757-b112-4983-b0e3-a7ff71cbf700", - "children": [ - { - "type": "tabset", - "id": "#31e9d54f-aabd-469f-9bd9-0991408fc498", - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#2685eeed-34cd-495e-b97f-a8fdeee8c769", - "component": "glyphs", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#c26b02cf-d882-41eb-bc36-396940ff91ef", - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#f751b71a-6fa8-470b-b0a4-089685966732", - "component": "editor", - "enableClose": false - } - ] - } - ] - } - } - }, - "scpi": { - "version": 3, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#ebd01920-9833-420f-86da-41aa1c377882", - "children": [ - { - "type": "row", - "id": "#54ff17ed-2d78-426a-bb99-1cc71d8df196", - "children": [ - { - "type": "tabset", - "id": "#002b23f3-125b-402f-b497-a7ec527acd78", - "children": [ - { - "type": "tab", - "id": "SCPI_SUBSYSTEMS", - "name": "Subsystems", - "component": "subsystems", - "enableClose": false - }, - { - "type": "tab", - "id": "SCPI_ENUMS", - "name": "Enums", - "component": "enums", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#5c5382dc-0ba3-43ef-b695-f21ad960192d", - "children": [ - { - "type": "tab", - "id": "SCPI_COMMANDS", - "name": "Commands", - "component": "commands", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "styles": { - "version": 2, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#da0ae4db-4c17-4d88-bc88-8cdf3ea36c28", - "children": [ - { - "type": "row", - "id": "#fce813b3-26ac-4cb2-a31b-623497b81894", - "children": [ - { - "type": "tabset", - "id": "#674e54b4-f38c-460e-9e50-6da1e86ab0c2", - "weight": 75, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#a38031d7-c227-44f8-ae86-610f6bec3cd1", - "name": "Styles", - "component": "styles", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#c164265e-3990-4dab-b8da-cdc05487e4a9", - "weight": 25, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#ee349b21-2192-4a89-80fd-2d2b44c224ad", - "name": "Preview", - "component": "preview", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "lvglStyles": { - "version": 1, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#5d9c7e47-c501-4a54-b78d-96a1889f1d26", - "children": [ - { - "type": "row", - "id": "#ba8370fe-adb0-4972-ac00-193f633cfdc3", - "children": [ - { - "type": "tabset", - "id": "#56febb5d-7f49-4497-af35-bd03dfb65d7f", - "weight": 75, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#f02d78a7-8f43-45a1-9732-de06749ad127", - "name": "Styles", - "component": "styles", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#5ab07f6c-7cb4-42e9-a1a1-eeed308d92fd", - "weight": 25, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#1869698c-9c09-4afa-be1c-ea87dbd0449c", - "name": "Preview", - "component": "preview", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "themes": { - "version": 1, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#20979bda-a645-43a2-9117-3545c89c092c", - "children": [ - { - "type": "row", - "id": "#8f361da0-f50d-498e-82c3-05b3bd3ae78b", - "children": [ - { - "type": "tabset", - "id": "#e4d66ab1-7741-4651-b8b7-c76584fab03d", - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#f6f9f499-55fd-430b-b9e0-8105fec299fe", - "component": "themes", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#daa1f810-5e52-4fda-9054-cbab3a0fa72f", - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#da015e03-ca53-47c6-89da-240d68809f51", - "component": "colors", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "texts": { - "version": 7, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#11b98034-857b-4dab-a981-52bdd0e7bdae", - "children": [ - { - "type": "row", - "id": "#cab2e118-79fb-49be-84ec-f813d8739198", - "children": [ - { - "type": "tabset", - "id": "#ae63b0fc-9ea4-40eb-887e-4b579b9110aa", - "children": [ - { - "type": "tab", - "id": "TEXT_RESOURCES", - "name": "Text resources", - "component": "resources", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#302bd9e3-2e0b-4e75-9175-8f9a28624562", - "children": [ - { - "type": "tab", - "id": "LANGUAGES", - "name": "Languages", - "component": "languages", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#50f5a818-0fa9-4339-9fb1-0695166a2840", - "children": [ - { - "type": "tab", - "id": "TEXTS_STATISTICS", - "name": "Statistics", - "component": "statistics", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "lvglGroups": { - "version": 3, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#7e77351a-d354-4838-92a7-0a74a7dd267f", - "children": [ - { - "type": "row", - "id": "#ebc8244e-aadf-46ab-aba8-7297dbc4e336", - "children": [ - { - "type": "tabset", - "id": "#e4a9ab14-b8df-454b-9f41-b5b98d671f81", - "weight": 50, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": true, - "children": [ - { - "type": "tab", - "id": "#1b573758-909e-490e-b9dc-3aaa94fd0dce", - "name": "Groups", - "component": "groups", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#23e1a3fe-2a64-4d8f-9704-8f5336c352b0", - "weight": 50, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": true, - "children": [ - { - "type": "tab", - "id": "#b6c1e1d0-a40f-4960-b324-bd425b7fd5fa", - "name": "Group Widgets", - "component": "order", - "enableClose": false - } - ] - } - ] - } - ] - } - } - } - }, - "selectedBuildConfiguration": "Default", - "features": {}, - "objects": { - "[Tonex_Controller_480_320.eez-project]:/userPages/0[flow-state]": { - "selection": { - "0": { - "0": { - "1": {}, - "7": {}, - "8": {}, - "10": { - "$selected": true - }, - "11": {}, - "12": {} - } - } - }, - "transform": { - "translate": { - "x": -494.8024350649359, - "y": -373.6126443001434 - }, - "scale": 1.75 - }, - "timeline": { - "isEditorActive": false, - "position": 0, - "secondToPx": 200, - "scrollLeft": 0 - } - }, - "[Tonex_Controller_480_320.eez-project]:/userPages/1[flow-state]": { - "selection": { - "0": { - "0": { - "0": {} - }, - "1": { - "$selected": true - } - } - }, - "transform": { - "translate": { - "x": -463.8108225108226, - "y": -332.91341991342006 - }, - "scale": 1.25 - }, - "timeline": { - "isEditorActive": false, - "position": 0, - "secondToPx": 200, - "scrollLeft": 0 - } - }, - "[Tonex_Controller_480_320.eez-project]:/userPages/2[flow-state]": { - "selection": { - "0": { - "0": { - "0": {}, - "11": { - "$selected": true - } - }, - "1": {} - } - }, - "transform": { - "translate": { - "x": -172.75081168831161, - "y": -191.27056277056272 - }, - "scale": 1.25 - }, - "timeline": { - "isEditorActive": false, - "position": 0, - "secondToPx": 200, - "scrollLeft": 0 - } - } - }, - "activeOutputSection": 0, - "searchPattern": "", - "searchMatchCase": false, - "searchMatchWholeWord": false, - "replaceEnabled": false, - "replaceText": "", - "breakpoints": {}, - "watchExpressions": [], - "showComponentDescriptions": true, - "logsPanelFilter": "all", - "selectedStylePropertyName": "", - "lvglPart": "MAIN", - "lvglState": "DEFAULT", - "lvglExpandedPropertiesGroup": [ - "TEXT", - "BACKGROUND" - ], - "showInactiveFlowsInDebugger": true, - "globalFlowZoom": true, - "flowZoom": 1.25, - "implementationLanguage": "C" -} \ No newline at end of file diff --git a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state b/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state deleted file mode 100644 index e0e3ad91..00000000 --- a/ui_design_800x480land/Tonex_Controller_800_480land.eez-project-ui-state +++ /dev/null @@ -1,1068 +0,0 @@ -{ - "navigation": { - "selectedUserPageObject": "[Tonex_Controller_800_480land.eez-project]:/userPages/0", - "selectedBitmapObject": "[Tonex_Controller_800_480land.eez-project]:/bitmaps/113", - "subnavigationSelectedItems": {} - }, - "layoutModel": { - "rootEditor": { - "version": 115, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [ - { - "type": "border", - "location": "top", - "children": [] - }, - { - "type": "border", - "selected": 2, - "size": 71.5, - "location": "right", - "children": [ - { - "type": "tab", - "id": "styles", - "name": "Styles", - "component": "styles", - "enableClose": false, - "icon": "material:format_color_fill" - }, - { - "type": "tab", - "id": "fonts", - "name": "Fonts", - "component": "fonts", - "enableClose": false, - "icon": "material:font_download" - }, - { - "type": "tab", - "id": "bitmaps", - "name": "Bitmaps", - "component": "bitmaps", - "enableClose": false, - "icon": "material:image" - }, - { - "type": "tab", - "id": "themes", - "name": "Themes", - "component": "themesSideView", - "enableClose": false, - "icon": "svg:palette" - }, - { - "type": "tab", - "id": "lvgl-groups", - "name": "Groups", - "component": "lvgl-groups", - "enableClose": false, - "icon": "material:view_compact" - } - ] - }, - { - "type": "border", - "selected": 0, - "size": 131.5, - "location": "bottom", - "children": [ - { - "type": "tab", - "id": "CHECKS", - "name": "Checks", - "component": "checksMessages", - "enableClose": false - }, - { - "type": "tab", - "id": "OUTPUT", - "name": "Output", - "component": "outputMessages", - "enableClose": false - }, - { - "type": "tab", - "id": "SEARCH", - "name": "Search", - "component": "search", - "enableClose": false - }, - { - "type": "tab", - "id": "REFERENCES", - "name": "References", - "component": "references", - "enableClose": false - } - ] - }, - { - "type": "border", - "size": 240, - "location": "left", - "children": [] - } - ], - "layout": { - "type": "row", - "id": "#62f89861-f8ef-4f62-b073-1c6404d632c5", - "children": [ - { - "type": "row", - "id": "#33a0017e-8d64-4d63-b969-c17b156cabc4", - "weight": 15, - "children": [ - { - "type": "tabset", - "id": "#4cbdbd43-810e-4900-a96f-b3fb3a62a03d", - "weight": 0.4858156028368794, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "PAGES", - "name": "Pages", - "component": "pages", - "enableClose": false, - "icon": "svg:pages" - }, - { - "type": "tab", - "id": "WIDGETS", - "name": "User Widgets", - "component": "widgets", - "enableClose": false, - "icon": "svg:user_widgets" - }, - { - "type": "tab", - "id": "ACTIONS", - "name": "User Actions", - "component": "actions", - "enableClose": false, - "icon": "material:code" - } - ] - }, - { - "type": "tabset", - "id": "#d922e14c-0593-4c57-97e1-f49c1fe89d64", - "weight": 2.017029290379453, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "#01b2b8de-1a82-41de-b513-e722c6e71822", - "name": "Widgets Structure", - "component": "flow-structure", - "enableClose": false, - "icon": "svg:hierarchy" - } - ], - "active": true - }, - { - "type": "tabset", - "id": "#415a55d9-46d2-462b-9c9b-aebfa5867181", - "weight": 0.4971551067836679, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "VARIABLES", - "name": "Variables", - "component": "variables", - "enableClose": false, - "icon": "svg:variable" - } - ] - } - ] - }, - { - "type": "tabset", - "id": "EDITORS", - "weight": 63.29315960912052, - "enableDeleteWhenEmpty": false, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "#76314634-65e1-4225-b990-af9c26f38d4f", - "name": "Screen1", - "component": "editor", - "config": { - "objectPath": "[Tonex_Controller_800_480land.eez-project]:/userPages/0", - "permanent": false - }, - "icon": "svg:page" - } - ] - }, - { - "type": "row", - "id": "#55e73ab0-fa96-4ca0-8eb9-9c3aaf1fe427", - "weight": 21.706840390879478, - "children": [ - { - "type": "tabset", - "id": "#d56f9479-e354-484f-93cd-1ba1569e8adb", - "weight": 2, - "children": [ - { - "type": "tab", - "id": "PROPERTIES", - "name": "Properties", - "component": "propertiesPanel", - "enableClose": false, - "icon": "svg:properties" - } - ] - }, - { - "type": "tabset", - "id": "#d949d284-ac4d-4c28-b39e-c4f57c72495b", - "weight": 1, - "children": [ - { - "type": "tab", - "id": "COMPONENTS_PALETTE", - "name": "Components Palette", - "component": "componentsPalette", - "enableClose": false, - "icon": "svg:components" - } - ] - } - ] - } - ] - } - } - }, - "rootEditorForIEXT": { - "version": 5, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [ - { - "type": "border", - "location": "top", - "children": [] - }, - { - "type": "border", - "size": 240, - "location": "right", - "children": [] - }, - { - "type": "border", - "location": "bottom", - "children": [ - { - "type": "tab", - "id": "CHECKS", - "name": "Checks", - "component": "checksMessages", - "enableClose": false - }, - { - "type": "tab", - "id": "OUTPUT", - "name": "Output", - "component": "outputMessages", - "enableClose": false - }, - { - "type": "tab", - "id": "SEARCH", - "name": "Search", - "component": "search", - "enableClose": false - }, - { - "type": "tab", - "id": "REFERENCES", - "name": "References", - "component": "references", - "enableClose": false - } - ] - }, - { - "type": "border", - "size": 240, - "location": "left", - "children": [] - } - ], - "layout": { - "type": "row", - "id": "#78418939-a687-420a-a9ee-0db80768baa8", - "children": [ - { - "type": "tabset", - "id": "#fb5f5dbc-64f1-49c6-8d9f-187e267e61e5", - "weight": 0, - "enableClose": false, - "children": [ - { - "type": "tab", - "id": "iext", - "name": "IEXT", - "component": "extension-definitions", - "enableClose": false, - "icon": "material:extension" - } - ] - }, - { - "type": "tabset", - "id": "EDITORS", - "weight": 1, - "selected": -1, - "enableDeleteWhenEmpty": false, - "enableClose": false, - "children": [] - }, - { - "type": "tabset", - "id": "#e57a19f3-25ba-4807-8c29-8b65d5487ab3", - "weight": 0, - "children": [ - { - "type": "tab", - "id": "PROPERTIES", - "name": "Properties", - "component": "propertiesPanel", - "enableClose": false, - "icon": "svg:properties" - } - ] - } - ] - } - } - }, - "rootRuntime": { - "version": 54, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#fe2d4cf2-0b8a-4e4b-bafa-e788657de8b4", - "children": [ - { - "type": "row", - "id": "#1f835b03-143a-4694-9622-d02cc8a15c55", - "weight": 0, - "width": 320, - "children": [ - { - "type": "tabset", - "id": "#7f04657e-a36e-4da9-ac1f-a74cf2f46828", - "weight": 1, - "children": [ - { - "type": "tab", - "id": "PAGES", - "name": "Pages", - "component": "pages", - "enableClose": false, - "icon": "svg:pages" - }, - { - "type": "tab", - "id": "WIDGETS", - "name": "User Widgets", - "component": "widgets", - "enableClose": false, - "icon": "svg:user_widgets" - }, - { - "type": "tab", - "id": "ACTIONS", - "name": "User Actions", - "component": "actions", - "enableClose": false, - "icon": "material:code" - } - ] - }, - { - "type": "tabset", - "id": "#8c338bf7-3f15-488b-ae20-4243be4b2051", - "weight": 1, - "children": [ - { - "type": "tab", - "id": "#617bcaab-85a5-4646-98ca-5020e858c4b8", - "name": "Active Flows", - "component": "active-flows", - "enableClose": false, - "icon": "svg:active_flows_panel" - } - ] - }, - { - "type": "tabset", - "id": "#dbf24400-b8da-45ac-b2a4-43d034e31abd", - "weight": 2, - "children": [ - { - "type": "tab", - "id": "#68640b39-0aec-4753-a369-5d0203fa4741", - "name": "Watch", - "component": "watch", - "enableClose": false, - "icon": "svg:watch_panel" - } - ] - } - ] - }, - { - "type": "tabset", - "id": "RUNTIME-EDITORS", - "weight": 1, - "selected": -1, - "enableDeleteWhenEmpty": false, - "enableClose": false, - "children": [] - }, - { - "type": "row", - "id": "#4f272bf3-0879-4496-99c5-cfe297f8bf9c", - "weight": 0, - "width": 320, - "children": [ - { - "type": "tabset", - "id": "#5eeb7134-a59b-4aa7-b5a1-c8f9c85d1c67", - "weight": 1, - "children": [ - { - "type": "tab", - "id": "#1322987f-b881-433b-9e82-2fdd3f4e06fc", - "name": "Queue", - "component": "queue", - "enableClose": false, - "icon": "svg:queue_panel" - }, - { - "type": "tab", - "id": "BREAKPOINTS_PALETTE", - "name": "Breakpoints", - "component": "breakpointsPanel", - "enableClose": false, - "icon": "svg:breakpoints_panel" - } - ] - }, - { - "type": "tabset", - "id": "#ab4991f7-a011-427c-ad75-92901a1943a5", - "weight": 2, - "children": [ - { - "type": "tab", - "id": "DEBUGGER_LOGS", - "name": "Logs", - "component": "logs", - "enableClose": false, - "icon": "svg:log" - } - ] - } - ] - } - ] - } - } - }, - "bitmaps": { - "version": 2, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#0fef122e-e773-431d-8f45-082824890509", - "children": [ - { - "type": "row", - "id": "#0b50594f-06a7-4bc2-a4a6-1049581a9b59", - "children": [ - { - "type": "tabset", - "id": "#c0dab723-57ee-4c37-981b-dcd53a1b857f", - "weight": 75, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#127178ff-d666-4c34-af16-adbea3b689b9", - "name": "Bitmaps", - "component": "bitmaps", - "enableClose": false - } - ], - "active": true - }, - { - "type": "tabset", - "id": "#8f682311-2551-403c-a921-8bb714271be9", - "weight": 25, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#90fd0849-0080-4de0-aa8c-c3a4038aed2d", - "name": "Preview", - "component": "preview", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "fonts": { - "version": 1, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#f3f59135-c4d3-45ef-922d-1606338d2ed6", - "children": [ - { - "type": "tabset", - "id": "#d2ce7217-a1f4-4a3d-9592-85f83793dbb5", - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#543d9b6d-8c3f-4221-b1b5-e5ccd5c95c2f", - "component": "glyphs", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#53bf104e-674d-4681-947e-3e6b03b318d5", - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#80dca807-bdd2-4f91-aca8-a80b3b025d0f", - "component": "editor", - "enableClose": false - } - ] - } - ] - } - } - }, - "scpi": { - "version": 3, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#50781897-7f4b-4a1d-b33a-d6bb6d2dd703", - "children": [ - { - "type": "row", - "id": "#4b4c9955-4dad-4659-866c-f9b7cc292ce7", - "children": [ - { - "type": "tabset", - "id": "#1a088147-18d2-491e-a146-b2e3de0bbcef", - "children": [ - { - "type": "tab", - "id": "SCPI_SUBSYSTEMS", - "name": "Subsystems", - "component": "subsystems", - "enableClose": false - }, - { - "type": "tab", - "id": "SCPI_ENUMS", - "name": "Enums", - "component": "enums", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#72955065-b887-495f-854f-6683733b02ad", - "children": [ - { - "type": "tab", - "id": "SCPI_COMMANDS", - "name": "Commands", - "component": "commands", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "styles": { - "version": 2, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#51eff45b-2210-4a0b-95f2-a9718e0476df", - "children": [ - { - "type": "row", - "id": "#dfdf7d71-bf8d-4be8-9196-c88e8a9d18f0", - "children": [ - { - "type": "tabset", - "id": "#2686c69c-33e1-4469-b590-b51c6c55e09a", - "weight": 75, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#ea6dd0c8-16a8-4745-bc84-bb6fe956d07c", - "name": "Styles", - "component": "styles", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#b4aec942-1909-425a-93d0-a26ecea5e7af", - "weight": 25, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#ee335f8e-66db-40df-8118-36157ae8b047", - "name": "Preview", - "component": "preview", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "lvglStyles": { - "version": 1, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#209ad23e-e0fc-4666-aade-cbe8fdf71539", - "children": [ - { - "type": "row", - "id": "#88cd2cec-f449-4887-be75-9c3d33101a13", - "children": [ - { - "type": "tabset", - "id": "#7eab4838-48b1-4413-b185-1732c58068d4", - "weight": 75, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#b3d28c15-4606-423e-adbb-78ef0adbc5c2", - "name": "Styles", - "component": "styles", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#9182f091-f835-42f0-beac-49eeae767e5f", - "weight": 25, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#0f0a9fb5-522c-4037-905e-7364a4c8afb4", - "name": "Preview", - "component": "preview", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "themes": { - "version": 1, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#f68bcc3a-3b29-4f56-babf-f1df3cbd1641", - "children": [ - { - "type": "row", - "id": "#5722717f-e84b-4981-ae4d-bdb14a26df45", - "children": [ - { - "type": "tabset", - "id": "#13400968-889c-4a1a-bb8a-5b5c5630fd07", - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#b7068e3b-0dd8-458a-b109-d0ae734fccf3", - "component": "themes", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#ece728c9-e7dd-4c5e-8b4d-a13143ab9931", - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": false, - "children": [ - { - "type": "tab", - "id": "#0e53ec30-ecc4-4072-9ae9-89480bde7962", - "component": "colors", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "texts": { - "version": 7, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#6bdee7aa-24df-44d3-8f43-9929f2fffd5a", - "children": [ - { - "type": "row", - "id": "#7389f4ec-cd1f-4122-989f-42db481b947f", - "children": [ - { - "type": "tabset", - "id": "#be024b7d-e3c6-44e3-b8aa-4893d4940fe1", - "children": [ - { - "type": "tab", - "id": "TEXT_RESOURCES", - "name": "Text resources", - "component": "resources", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#5182e4a4-51c9-4b78-bea1-ccd349581edf", - "children": [ - { - "type": "tab", - "id": "LANGUAGES", - "name": "Languages", - "component": "languages", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#b5be5da2-2884-4315-80ba-6f1a7b8c86b1", - "children": [ - { - "type": "tab", - "id": "TEXTS_STATISTICS", - "name": "Statistics", - "component": "statistics", - "enableClose": false - } - ] - } - ] - } - ] - } - } - }, - "lvglGroups": { - "version": 3, - "json": { - "global": { - "splitterSize": 4, - "splitterExtra": 4, - "tabEnableRename": false, - "borderEnableAutoHide": true - }, - "borders": [], - "layout": { - "type": "row", - "id": "#69479cab-137d-4e22-b3cb-2470ab10a6fb", - "children": [ - { - "type": "row", - "id": "#ac8bfba2-a1b3-4c92-a927-cf5bab3841a7", - "children": [ - { - "type": "tabset", - "id": "#089c364c-0f91-44b4-9cc2-df1c4f01f98a", - "weight": 50, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": true, - "children": [ - { - "type": "tab", - "id": "#9518a511-f60c-4d74-a404-bb915e7da338", - "name": "Groups", - "component": "groups", - "enableClose": false - } - ] - }, - { - "type": "tabset", - "id": "#6eba09bc-cf2a-4f0e-ad3d-740342871da1", - "weight": 50, - "enableDrop": false, - "enableDrag": false, - "enableClose": false, - "enableTabStrip": true, - "children": [ - { - "type": "tab", - "id": "#256f3ed0-6b01-4301-8b49-6a57488f99dc", - "name": "Group Widgets", - "component": "order", - "enableClose": false - } - ] - } - ] - } - ] - } - } - } - }, - "selectedBuildConfiguration": "Default", - "features": {}, - "objects": { - "[Tonex_Controller_800_480land.eez-project]:/userPages/0[flow-state]": { - "selection": { - "0": { - "0": { - "5": { - "1": { - "$selected": true - } - }, - "11": {} - } - } - }, - "transform": { - "translate": { - "x": -309.2033167495847, - "y": -289.6253892873299 - }, - "scale": 1 - }, - "timeline": { - "isEditorActive": false, - "position": 0, - "secondToPx": 200, - "scrollLeft": 0 - } - }, - "[Tonex_Controller_800_480land.eez-project]:/userPages/1[flow-state]": { - "selection": { - "0": { - "0": { - "$selected": true - } - } - }, - "transform": { - "translate": { - "x": -400, - "y": -240 - }, - "scale": 1 - }, - "timeline": { - "isEditorActive": false, - "position": 0, - "secondToPx": 200, - "scrollLeft": 0 - } - }, - "[Tonex_Controller_800_480land.eez-project]:/userPages/2[flow-state]": { - "selection": { - "0": { - "0": { - "$selected": true - } - } - }, - "transform": { - "translate": { - "x": -400, - "y": -140 - }, - "scale": 1 - }, - "timeline": { - "isEditorActive": false, - "position": 0, - "secondToPx": 200, - "scrollLeft": 0 - } - } - }, - "activeOutputSection": 0, - "searchPattern": "", - "searchMatchCase": false, - "searchMatchWholeWord": false, - "replaceEnabled": false, - "replaceText": "", - "pageRuntimeFrontFace": true, - "breakpoints": {}, - "watchExpressions": [], - "showComponentDescriptions": true, - "logsPanelFilter": "all", - "selectedStylePropertyName": "", - "lvglPart": "ITEMS", - "lvglState": "CHECKED", - "lvglExpandedPropertiesGroup": [ - "TEXT", - "BORDER" - ], - "showInactiveFlowsInDebugger": true, - "globalFlowZoom": true, - "flowZoom": 1, - "implementationLanguage": "C" -} \ No newline at end of file