From 945682aa786fb36e9ef173f0f6e731f40eb1a0bd Mon Sep 17 00:00:00 2001 From: s-hadinger <49731213+s-hadinger@users.noreply.github.com> Date: Sun, 13 Feb 2022 22:59:43 +0100 Subject: [PATCH] Berry virtual Alexa Hue device (#14833) * Berry virtual Alexa Hue device * Fix compilation --- lib/libesp32/berry/default/be_modtab.c | 6 + lib/libesp32/berry/generate/be_const_strtab.h | 29 + .../berry/generate/be_const_strtab_def.h | 2054 +++++++++-------- .../generate/be_fixed_be_class_light_state.h | 41 +- .../berry/generate/be_fixed_hue_ntv.h | 18 + .../berry_tasmota/src/be_hue_bridge_lib.c | 667 ++++++ lib/libesp32/berry_tasmota/src/be_hue_lib.cpp | 28 + .../src/be_light_state_class.cpp | 58 +- .../berry_tasmota/src/embedded/hue_bridge.be | 170 ++ tasmota/berry/alexa/hue_test.be | 37 + tasmota/xdrv_04_light.ino | 47 +- tasmota/xdrv_20_hue.ino | 48 +- tasmota/xdrv_23_zigbee_3_hue.ino | 6 +- tasmota/xdrv_52_3_berry_hue.ino | 212 ++ tasmota/xdrv_52_3_berry_light_state.ino | 140 +- tasmota/xdrv_52_7_berry_embedded.ino | 9 +- 16 files changed, 2440 insertions(+), 1130 deletions(-) create mode 100644 lib/libesp32/berry/generate/be_fixed_hue_ntv.h create mode 100644 lib/libesp32/berry_tasmota/src/be_hue_bridge_lib.c create mode 100644 lib/libesp32/berry_tasmota/src/be_hue_lib.cpp create mode 100644 lib/libesp32/berry_tasmota/src/embedded/hue_bridge.be create mode 100644 tasmota/berry/alexa/hue_test.be create mode 100644 tasmota/xdrv_52_3_berry_hue.ino diff --git a/lib/libesp32/berry/default/be_modtab.c b/lib/libesp32/berry/default/be_modtab.c index fd98159ec..e09106849 100644 --- a/lib/libesp32/berry/default/be_modtab.c +++ b/lib/libesp32/berry/default/be_modtab.c @@ -41,6 +41,8 @@ be_extern_native_module(webserver); be_extern_native_module(flash); be_extern_native_module(path); be_extern_native_module(unishox); +be_extern_native_module(hue_ntv); +be_extern_native_module(hue_bridge); be_extern_native_module(uuid); be_extern_native_module(animate); #ifdef USE_LVGL @@ -118,6 +120,10 @@ BERRY_LOCAL const bntvmodule* const be_module_table[] = { #ifdef USE_LIGHT &be_native_module(light), #endif +#if defined(USE_EMULATION) && defined(USE_EMULATION_HUE) + &be_native_module(hue_ntv), + &be_native_module(hue_bridge), +#endif &be_native_module(uuid), #ifdef USE_UNISHOX_COMPRESSION diff --git a/lib/libesp32/berry/generate/be_const_strtab.h b/lib/libesp32/berry/generate/be_const_strtab.h index 3f78caf90..834714ee9 100644 --- a/lib/libesp32/berry/generate/be_const_strtab.h +++ b/lib/libesp32/berry/generate/be_const_strtab.h @@ -15,6 +15,7 @@ extern const bcstring be_const_str_BRY_X3A_X20Exception_X3E_X20_X27_X25s_X27_X20 extern const bcstring be_const_str_BRY_X3A_X20argument_X20must_X20be_X20a_X20function; extern const bcstring be_const_str_BRY_X3A_X20could_X20not_X20save_X20compiled_X20file_X20_X25s_X20_X28_X25s_X29; extern const bcstring be_const_str_BRY_X3A_X20failed_X20to_X20load_X20_persist_X2Ejson; +extern const bcstring be_const_str_BRY_X3A_X20invalid_X20hue_X20payload_X3A_X20; extern const bcstring be_const_str_BRY_X3A_X20method_X20not_X20allowed_X2C_X20use_X20a_X20closure_X20like_X20_X27_X2F_X20args_X20_X2D_X3E_X20obj_X2Efunc_X28args_X29_X27; extern const bcstring be_const_str_BUTTON_CONFIGURATION; extern const bcstring be_const_str_CFG_X3A_X20Exception_X3E_X20_X27_X25s_X27_X20_X2D_X20_X25s; @@ -64,6 +65,7 @@ extern const bcstring be_const_str_OpusDecoder; extern const bcstring be_const_str_PART_MAIN; extern const bcstring be_const_str_POST; extern const bcstring be_const_str_Parameter_X20error; +extern const bcstring be_const_str_RELAY; extern const bcstring be_const_str_RES_OK; extern const bcstring be_const_str_RGB; extern const bcstring be_const_str_RGBCT; @@ -100,6 +102,7 @@ extern const bcstring be_const_str_Tasmota; extern const bcstring be_const_str_Tele; extern const bcstring be_const_str_Timer; extern const bcstring be_const_str_True; +extern const bcstring be_const_str_Unknown; extern const bcstring be_const_str_Unknown_X20command; extern const bcstring be_const_str_WS2812; extern const bcstring be_const_str_WS2812_GRB; @@ -109,6 +112,8 @@ extern const bcstring be_const_str__X0A; extern const bcstring be_const_str__X20; extern const bcstring be_const_str__X21_X3D; extern const bcstring be_const_str__X21_X3D_X3D; +extern const bcstring be_const_str__X22; +extern const bcstring be_const_str__X22_X3A; extern const bcstring be_const_str__X23; extern const bcstring be_const_str__X23autoexec_X2Ebat; extern const bcstring be_const_str__X23autoexec_X2Ebe; @@ -142,6 +147,8 @@ extern const bcstring be_const_str__X2F; extern const bcstring be_const_str__X2F_X2Eautoconf; extern const bcstring be_const_str__X2F_X3Frst_X3D; extern const bcstring be_const_str__X2Fac; +extern const bcstring be_const_str__X2Flights_X2F; +extern const bcstring be_const_str__X2Fstate_X2F; extern const bcstring be_const_str__X3A; extern const bcstring be_const_str__X3C; extern const bcstring be_const_str__X3C_X2Fform_X3E_X3C_X2Fp_X3E; @@ -226,6 +233,7 @@ extern const bcstring be_const_str_add_event_cb; extern const bcstring be_const_str_add_fast_loop; extern const bcstring be_const_str_add_handler; extern const bcstring be_const_str_add_header; +extern const bcstring be_const_str_add_light; extern const bcstring be_const_str_add_rule; extern const bcstring be_const_str_addr; extern const bcstring be_const_str_allocated; @@ -324,6 +332,7 @@ extern const bcstring be_const_str_counters; extern const bcstring be_const_str_create_custom_widget; extern const bcstring be_const_str_create_matrix; extern const bcstring be_const_str_create_segment; +extern const bcstring be_const_str_ct; extern const bcstring be_const_str_ctor; extern const bcstring be_const_str_ctypes_bytes; extern const bcstring be_const_str_ctypes_bytes_dyn; @@ -347,6 +356,7 @@ extern const bcstring be_const_str_digital_read; extern const bcstring be_const_str_digital_write; extern const bcstring be_const_str_dimmer; extern const bcstring be_const_str_dirty; +extern const bcstring be_const_str_discover; extern const bcstring be_const_str_display; extern const bcstring be_const_str_display_X2Eini; extern const bcstring be_const_str_do; @@ -406,6 +416,8 @@ extern const bcstring be_const_str_from_to; extern const bcstring be_const_str_fromb64; extern const bcstring be_const_str_fromptr; extern const bcstring be_const_str_fromstring; +extern const bcstring be_const_str_full_state; +extern const bcstring be_const_str_full_status; extern const bcstring be_const_str_function; extern const bcstring be_const_str_gamma; extern const bcstring be_const_str_gamma10; @@ -451,6 +463,7 @@ extern const bcstring be_const_str_geti; extern const bcstring be_const_str_global; extern const bcstring be_const_str_gpio; extern const bcstring be_const_str_group_def; +extern const bcstring be_const_str_groups; extern const bcstring be_const_str_h; extern const bcstring be_const_str_has; extern const bcstring be_const_str_has_X20already_X20an_X20event_X20callback; @@ -461,8 +474,12 @@ extern const bcstring be_const_str_hour; extern const bcstring be_const_str_hs2rgb; extern const bcstring be_const_str_https_X3A_X2F_X2Fraw_X2Egithubusercontent_X2Ecom_X2Ftasmota_X2Fautoconf_X2Fmain_X2F_X25s_X2F_X25s_X2Eautoconf; extern const bcstring be_const_str_https_X3A_X2F_X2Fraw_X2Egithubusercontent_X2Ecom_X2Ftasmota_X2Fautoconf_X2Fmain_X2F_X25s_manifest_X2Ejson; +extern const bcstring be_const_str_hue; +extern const bcstring be_const_str_hue_ntv; +extern const bcstring be_const_str_hue_status; extern const bcstring be_const_str_i2c_enabled; extern const bcstring be_const_str_id; +extern const bcstring be_const_str_id_X20must_X20be_X20of_X20type_X20_X27int_X27; extern const bcstring be_const_str_if; extern const bcstring be_const_str_imax; extern const bcstring be_const_str_imin; @@ -507,7 +524,9 @@ extern const bcstring be_const_str_last_modified; extern const bcstring be_const_str_leds; extern const bcstring be_const_str_length_X20in_X20bits_X20must_X20be_X20between_X200_X20and_X2032; extern const bcstring be_const_str_light; +extern const bcstring be_const_str_light_X20must_X20be_X20of_X20class_X20_X27light_state_X27; extern const bcstring be_const_str_light_state; +extern const bcstring be_const_str_lights; extern const bcstring be_const_str_line_dsc; extern const bcstring be_const_str_list; extern const bcstring be_const_str_list_handlers; @@ -541,6 +560,7 @@ extern const bcstring be_const_str_lv_wifi_bars; extern const bcstring be_const_str_lv_wifi_bars_icon; extern const bcstring be_const_str_lvgl_event_dispatch; extern const bcstring be_const_str_make_cb; +extern const bcstring be_const_str_manuf; extern const bcstring be_const_str_map; extern const bcstring be_const_str_math; extern const bcstring be_const_str_matrix; @@ -550,6 +570,8 @@ extern const bcstring be_const_str_memory; extern const bcstring be_const_str_millis; extern const bcstring be_const_str_min; extern const bcstring be_const_str_minute; +extern const bcstring be_const_str_missing_X20name; +extern const bcstring be_const_str_model; extern const bcstring be_const_str_module; extern const bcstring be_const_str_month; extern const bcstring be_const_str_montserrat_font; @@ -626,6 +648,7 @@ extern const bcstring be_const_str_remote_port; extern const bcstring be_const_str_remove; extern const bcstring be_const_str_remove_cmd; extern const bcstring be_const_str_remove_driver; +extern const bcstring be_const_str_remove_light; extern const bcstring be_const_str_remove_rule; extern const bcstring be_const_str_remove_timer; extern const bcstring be_const_str_reset; @@ -652,6 +675,7 @@ extern const bcstring be_const_str_run; extern const bcstring be_const_str_run_bat; extern const bcstring be_const_str_run_deferred; extern const bcstring be_const_str_running; +extern const bcstring be_const_str_sat; extern const bcstring be_const_str_save; extern const bcstring be_const_str_save_before_restart; extern const bcstring be_const_str_scale_uint; @@ -678,6 +702,7 @@ extern const bcstring be_const_str_set_exten; extern const bcstring be_const_str_set_first_time; extern const bcstring be_const_str_set_gain; extern const bcstring be_const_str_set_height; +extern const bcstring be_const_str_set_hue16sat; extern const bcstring be_const_str_set_huesat; extern const bcstring be_const_str_set_ldo_enable; extern const bcstring be_const_str_set_ldo_voltage; @@ -690,6 +715,7 @@ extern const bcstring be_const_str_set_pixel_color; extern const bcstring be_const_str_set_power; extern const bcstring be_const_str_set_pwm; extern const bcstring be_const_str_set_rate; +extern const bcstring be_const_str_set_reachable; extern const bcstring be_const_str_set_rgb; extern const bcstring be_const_str_set_style_bg_color; extern const bcstring be_const_str_set_style_line_color; @@ -714,6 +740,7 @@ extern const bcstring be_const_str_shared_key; extern const bcstring be_const_str_show; extern const bcstring be_const_str_signal_arcs; extern const bcstring be_const_str_signal_bars; +extern const bcstring be_const_str_signal_change; extern const bcstring be_const_str_sin; extern const bcstring be_const_str_sinh; extern const bcstring be_const_str_size; @@ -732,6 +759,7 @@ extern const bcstring be_const_str_strftime; extern const bcstring be_const_str_string; extern const bcstring be_const_str_strip; extern const bcstring be_const_str_strptime; +extern const bcstring be_const_str_success; extern const bcstring be_const_str_super; extern const bcstring be_const_str_sys; extern const bcstring be_const_str_tag; @@ -826,6 +854,7 @@ extern const bcstring be_const_str_write_file; extern const bcstring be_const_str_write_gpio; extern const bcstring be_const_str_x; extern const bcstring be_const_str_x1; +extern const bcstring be_const_str_xy; extern const bcstring be_const_str_y; extern const bcstring be_const_str_y1; extern const bcstring be_const_str_year; diff --git a/lib/libesp32/berry/generate/be_const_strtab_def.h b/lib/libesp32/berry/generate/be_const_strtab_def.h index b26de1f17..777e7d55a 100644 --- a/lib/libesp32/berry/generate/be_const_strtab_def.h +++ b/lib/libesp32/berry/generate/be_const_strtab_def.h @@ -1,735 +1,763 @@ -be_define_const_str(, "", 2166136261u, 0, 0, &be_const_str_rtc); -be_define_const_str(_X0A, "\n", 252472541u, 0, 1, &be_const_str__X3Cp_X3ECurrent_X20configuration_X3A_X20_X3C_X2Fp_X3E_X3Cp_X3E_X3Cb_X3E_X25s_X3C_X2Fb_X3E_X3C_X2Fp_X3E); -be_define_const_str(_X20, " ", 621580159u, 0, 1, &be_const_str__X2Ep); -be_define_const_str(_X21_X3D, "!=", 2428715011u, 0, 2, &be_const_str_CT); -be_define_const_str(_X21_X3D_X3D, "!==", 559817114u, 0, 3, &be_const_str_publish); -be_define_const_str(_X23, "#", 638357778u, 0, 1, &be_const_str_asstring); -be_define_const_str(_X23autoexec_X2Ebat, "#autoexec.bat", 3382890497u, 0, 13, &be_const_str_lvgl_event_dispatch); -be_define_const_str(_X23autoexec_X2Ebe, "#autoexec.be", 1181757091u, 0, 12, &be_const_str__X5B); -be_define_const_str(_X23display_X2Eini, "#display.ini", 182218220u, 0, 12, &be_const_str_begin_multicast); -be_define_const_str(_X23init_X2Ebat, "#init.bat", 3297595077u, 0, 9, &be_const_str_CFG_X3A_X20_X27init_X2Ebat_X27_X20done_X2C_X20restarting); -be_define_const_str(_X23preinit_X2Ebe, "#preinit.be", 687035716u, 0, 11, &be_const_str__error); -be_define_const_str(_X2502d_X25s_X2502d, "%02d%s%02d", 1587999717u, 0, 10, &be_const_str__X3D_X3C_X3E_X21); -be_define_const_str(_X2504d_X2D_X2502d_X2D_X2502dT_X2502d_X3A_X2502d_X3A_X2502d, "%04d-%02d-%02dT%02d:%02d:%02d", 3425528601u, 0, 29, &be_const_str_BUTTON_CONFIGURATION); -be_define_const_str(_X2508x_X2D_X2504x_X2D_X2504x_X2D_X2504x_X2D_X2504x_X2508x, "%08x-%04x-%04x-%04x-%04x%08x", 1670063141u, 0, 28, &be_const_str_lv_coord_arr); -be_define_const_str(_X25s_X2Eautoconf, "%s.autoconf", 3560383524u, 0, 11, &be_const_str_RES_OK); -be_define_const_str(_X26lt_X3BError_X3A_X20apply_X20new_X20or_X20remove_X26gt_X3B, "<Error: apply new or remove>", 2855507949u, 0, 34, &be_const_str_gamma); -be_define_const_str(_X26lt_X3BNone_X26gt_X3B, "<None>", 2602165498u, 0, 12, &be_const_str__X2Fac); -be_define_const_str(_X28_X29, "()", 685372826u, 0, 2, &be_const_str_read24); -be_define_const_str(_X2B, "+", 772578730u, 0, 1, &be_const_str_make_cb); -be_define_const_str(_X2C, ",", 688690635u, 0, 1, &be_const_str_https_X3A_X2F_X2Fraw_X2Egithubusercontent_X2Ecom_X2Ftasmota_X2Fautoconf_X2Fmain_X2F_X25s_manifest_X2Ejson); -be_define_const_str(_X2C_X22AXP192_X22_X3A_X7B_X22VBusVoltage_X22_X3A_X25_X2E3f_X2C_X22VBusCurrent_X22_X3A_X25_X2E1f_X2C_X22BattVoltage_X22_X3A_X25_X2E3f_X2C_X22BattCurrent_X22_X3A_X25_X2E1f_X2C_X22Temperature_X22_X3A_X25_X2E1f_X7D, ",\"AXP192\":{\"VBusVoltage\":%.3f,\"VBusCurrent\":%.1f,\"BattVoltage\":%.3f,\"BattCurrent\":%.1f,\"Temperature\":%.1f}", 2598755376u, 0, 106, &be_const_str_bus); -be_define_const_str(_X2D_X2D_X3A_X2D_X2D, "--:--", 1370615441u, 0, 5, NULL); -be_define_const_str(_X2E, ".", 722245873u, 0, 1, &be_const_str_search); -be_define_const_str(_X2E_X2E, "..", 2748622605u, 0, 2, &be_const_str_SERIAL_7O1); -be_define_const_str(_X2Eautoconf, ".autoconf", 2524679088u, 0, 9, &be_const_str_value); -be_define_const_str(_X2Ebe, ".be", 1325797348u, 0, 3, &be_const_str_Tasmota); -be_define_const_str(_X2Ebec, ".bec", 3985273221u, 0, 4, &be_const_str_floor); -be_define_const_str(_X2Elen, ".len", 850842136u, 0, 4, &be_const_str_fast_loop_enabled); -be_define_const_str(_X2Ep, ".p", 1171526419u, 0, 2, &be_const_str_arg_X20must_X20be_X20a_X20subclass_X20of_X20lv_obj); -be_define_const_str(_X2Ep1, ".p1", 249175686u, 0, 3, &be_const_str_scan); -be_define_const_str(_X2Ep2, ".p2", 232398067u, 0, 3, &be_const_str_add_header); +be_define_const_str(, "", 2166136261u, 0, 0, &be_const_str__def); +be_define_const_str(_X0A, "\n", 252472541u, 0, 1, &be_const_str__X2D_X2D_X3A_X2D_X2D); +be_define_const_str(_X20, " ", 621580159u, 0, 1, NULL); +be_define_const_str(_X21_X3D, "!=", 2428715011u, 0, 2, &be_const_str_send); +be_define_const_str(_X21_X3D_X3D, "!==", 559817114u, 0, 3, &be_const_str_yield); +be_define_const_str(_X22, "\"", 655135397u, 0, 1, &be_const_str__X23autoexec_X2Ebat); +be_define_const_str(_X22_X3A, "\":", 399167565u, 0, 2, &be_const_str_TAP_X3A_X20Loaded_X20Tasmota_X20App_X20_X27_X25s_X27); +be_define_const_str(_X23, "#", 638357778u, 0, 1, &be_const_str_delete_all_configs); +be_define_const_str(_X23autoexec_X2Ebat, "#autoexec.bat", 3382890497u, 0, 13, &be_const_str_constructor_cb); +be_define_const_str(_X23autoexec_X2Ebe, "#autoexec.be", 1181757091u, 0, 12, &be_const_str__X3Clegend_X3E_X3Cb_X20title_X3D_X27New_X20autoconf_X27_X3E_X26nbsp_X3BSelect_X20new_X20auto_X2Dconfiguration_X3C_X2Fb_X3E_X3C_X2Flegend_X3E); +be_define_const_str(_X23display_X2Eini, "#display.ini", 182218220u, 0, 12, &be_const_str_public_key); +be_define_const_str(_X23init_X2Ebat, "#init.bat", 3297595077u, 0, 9, &be_const_str__X3D_X3C_X3E_X21); +be_define_const_str(_X23preinit_X2Ebe, "#preinit.be", 687035716u, 0, 11, &be_const_str_eth); +be_define_const_str(_X2502d_X25s_X2502d, "%02d%s%02d", 1587999717u, 0, 10, NULL); +be_define_const_str(_X2504d_X2D_X2502d_X2D_X2502dT_X2502d_X3A_X2502d_X3A_X2502d, "%04d-%02d-%02dT%02d:%02d:%02d", 3425528601u, 0, 29, &be_const_str_CFG_X3A_X20downloading_X20_X27_X25s_X27); +be_define_const_str(_X2508x_X2D_X2504x_X2D_X2504x_X2D_X2504x_X2D_X2504x_X2508x, "%08x-%04x-%04x-%04x-%04x%08x", 1670063141u, 0, 28, NULL); +be_define_const_str(_X25s_X2Eautoconf, "%s.autoconf", 3560383524u, 0, 11, NULL); +be_define_const_str(_X26lt_X3BError_X3A_X20apply_X20new_X20or_X20remove_X26gt_X3B, "<Error: apply new or remove>", 2855507949u, 0, 34, &be_const_str_EXTERNAL_I2S); +be_define_const_str(_X26lt_X3BNone_X26gt_X3B, "<None>", 2602165498u, 0, 12, &be_const_str_isinstance); +be_define_const_str(_X28_X29, "()", 685372826u, 0, 2, &be_const_str_find_key_i); +be_define_const_str(_X2B, "+", 772578730u, 0, 1, &be_const_str_lower); +be_define_const_str(_X2C, ",", 688690635u, 0, 1, &be_const_str_leds); +be_define_const_str(_X2C_X22AXP192_X22_X3A_X7B_X22VBusVoltage_X22_X3A_X25_X2E3f_X2C_X22VBusCurrent_X22_X3A_X25_X2E1f_X2C_X22BattVoltage_X22_X3A_X25_X2E3f_X2C_X22BattCurrent_X22_X3A_X25_X2E1f_X2C_X22Temperature_X22_X3A_X25_X2E1f_X7D, ",\"AXP192\":{\"VBusVoltage\":%.3f,\"VBusCurrent\":%.1f,\"BattVoltage\":%.3f,\"BattCurrent\":%.1f,\"Temperature\":%.1f}", 2598755376u, 0, 106, &be_const_str_files); +be_define_const_str(_X2D_X2D_X3A_X2D_X2D, "--:--", 1370615441u, 0, 5, &be_const_str_lv_coord_arr); +be_define_const_str(_X2E, ".", 722245873u, 0, 1, &be_const_str_json_fdump_list); +be_define_const_str(_X2E_X2E, "..", 2748622605u, 0, 2, &be_const_str_list); +be_define_const_str(_X2Eautoconf, ".autoconf", 2524679088u, 0, 9, &be_const_str_get_current_module_path); +be_define_const_str(_X2Ebe, ".be", 1325797348u, 0, 3, &be_const_str_BRY_X3A_X20argument_X20must_X20be_X20a_X20function); +be_define_const_str(_X2Ebec, ".bec", 3985273221u, 0, 4, &be_const_str_get_vbus_voltage); +be_define_const_str(_X2Elen, ".len", 850842136u, 0, 4, &be_const_str_rtc); +be_define_const_str(_X2Ep, ".p", 1171526419u, 0, 2, &be_const_str_create_segment); +be_define_const_str(_X2Ep1, ".p1", 249175686u, 0, 3, &be_const_str_draw_line_dsc_init); +be_define_const_str(_X2Ep2, ".p2", 232398067u, 0, 3, &be_const_str_set); be_define_const_str(_X2Esize, ".size", 1965188224u, 0, 5, NULL); -be_define_const_str(_X2Etapp, ".tapp", 1363391594u, 0, 5, &be_const_str__archive); -be_define_const_str(_X2Ew, ".w", 1255414514u, 0, 2, &be_const_str__X2F); -be_define_const_str(_X2F, "/", 705468254u, 0, 1, &be_const_str_widget_constructor); -be_define_const_str(_X2F_X2Eautoconf, "/.autoconf", 2212074393u, 0, 10, &be_const_str__X3C_X2Fselect_X3E_X3Cp_X3E_X3C_X2Fp_X3E); -be_define_const_str(_X2F_X3Frst_X3D, "/?rst=", 580074707u, 0, 6, &be_const_str_setrange); -be_define_const_str(_X2Fac, "/ac", 3904651978u, 0, 3, &be_const_str_classname); -be_define_const_str(_X3A, ":", 1057798253u, 0, 1, &be_const_str_get_size); -be_define_const_str(_X3C, "<", 957132539u, 0, 1, &be_const_str_argument_X20must_X20be_X20a_X20function); -be_define_const_str(_X3C_X2Fform_X3E_X3C_X2Fp_X3E, "
", 3546571739u, 0, 11, &be_const_str_set_style_bg_color); -be_define_const_str(_X3C_X2Fselect_X3E_X3Cp_X3E_X3C_X2Fp_X3E, "", 1863865923u, 0, 16, NULL); -be_define_const_str(_X3C_X3D, "<=", 2499223986u, 0, 2, NULL); -be_define_const_str(_X3Cbutton_X20name_X3D_X27reapply_X27_X20class_X3D_X27button_X20bgrn_X27_X3ERe_X2Dapply_X20current_X20configuration_X3C_X2Fbutton_X3E, "", 3147934216u, 0, 82, &be_const_str_assert); -be_define_const_str(_X3Cbutton_X20name_X3D_X27zipapply_X27_X20class_X3D_X27button_X20bgrn_X27_X3EApply_X20configuration_X3C_X2Fbutton_X3E, "", 1205771629u, 0, 72, &be_const_str_set_useragent); -be_define_const_str(_X3Cfieldset_X3E_X3Cstyle_X3E_X2Ebdis_X7Bbackground_X3A_X23888_X3B_X7D_X2Ebdis_X3Ahover_X7Bbackground_X3A_X23888_X3B_X7D_X3C_X2Fstyle_X3E, "", 2052843416u, 0, 25, &be_const_str_EC_C25519); -be_define_const_str(_X3Cp_X3E_X3Cform_X20id_X3Dac_X20action_X3D_X27ac_X27_X20style_X3D_X27display_X3A_X20block_X3B_X27_X20method_X3D_X27get_X27_X3E_X3Cbutton_X3EAuto_X2Dconfiguration_X3C_X2Fbutton_X3E_X3C_X2Fform_X3E_X3C_X2Fp_X3E, "", 2058443583u, 0, 110, NULL); -be_define_const_str(_X3Cp_X3E_X3Cform_X20id_X3Dreapply_X20style_X3D_X27display_X3A_X20block_X3B_X27_X20action_X3D_X27_X2Fac_X27_X20method_X3D_X27post_X27_X20, "", 3546571739u, 0, 11, &be_const_str_full_status); +be_define_const_str(_X3C_X2Fselect_X3E_X3Cp_X3E_X3C_X2Fp_X3E, "", 1863865923u, 0, 16, &be_const_str_file); +be_define_const_str(_X3C_X3D, "<=", 2499223986u, 0, 2, &be_const_str__X3Cp_X3E_X3Cform_X20id_X3Dzip_X20style_X3D_X27display_X3A_X20block_X3B_X27_X20action_X3D_X27_X2Fac_X27_X20method_X3D_X27post_X27_X20); +be_define_const_str(_X3Cbutton_X20name_X3D_X27reapply_X27_X20class_X3D_X27button_X20bgrn_X27_X3ERe_X2Dapply_X20current_X20configuration_X3C_X2Fbutton_X3E, "", 3147934216u, 0, 82, &be_const_str_False); +be_define_const_str(_X3Cbutton_X20name_X3D_X27zipapply_X27_X20class_X3D_X27button_X20bgrn_X27_X3EApply_X20configuration_X3C_X2Fbutton_X3E, "", 1205771629u, 0, 72, &be_const_str_erase); +be_define_const_str(_X3Cfieldset_X3E_X3Cstyle_X3E_X2Ebdis_X7Bbackground_X3A_X23888_X3B_X7D_X2Ebdis_X3Ahover_X7Bbackground_X3A_X23888_X3B_X7D_X3C_X2Fstyle_X3E, "", 2052843416u, 0, 25, &be_const_str__X3E_X3D); +be_define_const_str(_X3Cp_X3E_X3Cform_X20id_X3Dac_X20action_X3D_X27ac_X27_X20style_X3D_X27display_X3A_X20block_X3B_X27_X20method_X3D_X27get_X27_X3E_X3Cbutton_X3EAuto_X2Dconfiguration_X3C_X2Fbutton_X3E_X3C_X2Fform_X3E_X3C_X2Fp_X3E, "", 2058443583u, 0, 110, &be_const_str_pixel_count); +be_define_const_str(_X3Cp_X3E_X3Cform_X20id_X3Dreapply_X20style_X3D_X27display_X3A_X20block_X3B_X27_X20action_X3D_X27_X2Fac_X27_X20method_X3D_X27post_X27_X20, "